की गणना करें मैं UIButton
के उदाहरण के साथ UITextField
के उदाहरण की बेसलाइन को प्रोग्रामेटिक रूप से संरेखित करने का प्रयास कर रहा हूं। मैं वर्तमान में here वर्णित इस गणना को इसी तरह से संभालने में काम कर रहा हूं, लेकिन UITextField
के साथ सामग्री के लिए ऑफसेट हो सकता है। कोई विचार मैं UITextField
या इससे भी बेहतर के भीतर टेक्स्ट स्थिति कैसे प्राप्त कर सकता हूं, क्या बेसलाइन को संरेखित करने का एक और आसान तरीका है?UITextField बेसलाइन स्थिति
11
A
उत्तर
0
मेरे अनुभव में, UITextField
वास्तव में पाठ के चारों ओर कोई ऑफसेट नहीं है, UIButton
के विपरीत। भले ही, तुम दोनों नियंत्रण में सही पाठ बॉक्स यह पता लगाने कर सकते हैं:
let textField = UITextField()
//... size the field, e.g. textField.sizeToFit()
let button = UIButton()
//... size the button, e.g. button.sizeToFit()
// Compute the target offset between tops (frame.origin.y).
let buttonBox = button.contentRectForBounds(button.bounds)
let buttonBaseline = buttonBox.origin.y + button.titleLabel!.font.ascender
let textFieldBox = textField.textRectForBounds(textField.bounds)
let textFieldBaseline = textFieldBox.origin.y + textField.font!.ascender
let offset = buttonBaseline - textFieldBaseline
//... position button, e.g., button.frame = CGRect(...)
textField.frame = CGRect(
origin: CGPoint(x: button.frame.maxX, y: button.frame.origin.y + offset),
size: textField.bounds.size)