Tôi đang cố căn chỉnh đường cơ sở của phiên bản UITextField
với phiên bản UIButton
. Tôi hiện đang xử lý tính toán này theo cách tương tự được mô tả here, nhưng với UITextField
có thể có một bù đắp cho nội dung. Bất kỳ ý tưởng làm thế nào tôi có thể có được vị trí văn bản trong vòng UITextField
hoặc thậm chí tốt hơn, là có một cách đơn giản hơn để sắp xếp các đường cơ sở?Tính vị trí đường cơ sở UITextField
11
A
Trả lời
0
Theo kinh nghiệm của tôi, UITextField
không thực sự có bất kỳ khoảng trống nào xung quanh văn bản, không giống như UIButton
. Bất kể, bạn có thể tìm ra các hộp văn bản chính xác trong cả hai điều khiển:
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)