我看过这篇文章Text inset for UITextField?,但仍然无法弄明白。
我想要一个80.0高的UITextField
。我希望文本在UITextField
的顶部40.0以下,20.0高,在文本下面留下20.0作为填充。我目前的代码是。
let textBounds: CGRect = CGRect(x: 0, y: 40, width: self.width, height: 20)
self.editingRectForBounds(textBounds)
self.textRectForBounds(textBounds)
UITextField
是子类,目前我认为文本在上方和下方有30.0填充,高度为20.0或垂直居中于UITextField
。
答案 0 :(得分:0)
我已经重写了你的代码以使用UITextField
子类:
class myTextField: UITextField {
var textBounds: CGRect = CGRectZero
override init(frame: CGRect) {
super.init(frame: frame)
textBounds = CGRectMake(0, 40, self.frame.width, 20)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func textRectForBounds(bounds: CGRect) -> CGRect {
return textBounds
}
override func editingRectForBounds(bounds: CGRect) -> CGRect {
return textBounds
}
}
并添加了一个示例,说明如何将其添加到您的视图中:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let textField = myTextField(frame: CGRectMake(20, 64, 200, 50))
textField.text = "Hello World"
// Show a border to visualize the frame.
textField.layer.borderColor = UIColor.redColor().CGColor
textField.layer.borderWidth = 1
view.addSubview(textField)
}
}
UITextField
子类可以添加到视图控制器文件或单独的文件中。这是你的选择。