如何在 viewDidAppear 中获取 UITextField 的高度
How to get height of UITextField in viewDidAppear
我正在 viewDidAppear
中创建一个 UITextField
,我想使用它的高度在使用 CALayer
的文本字段下方画一条线。正如预期的那样,文本字段的高度为零,因为它尚未绘制!
override func viewDidAppear(_ animated: Bool) {
setUpTextField()
drawUnderLine()
}
func drawUnderLine(){
let bottomLine = CALayer()
bottomLine.frame = CGRect(x: textField.bounds.origin.x, y: textField.bounds.origin.y + textField.bounds.size.height + 2, width: self.view.bounds.width - 100, height: 1.0)
textField.layer.addSublayer(bottomLine)
}
我的解决方法是使用 UIView
画一条线,并将该线的顶部锚点设置为等于文本字段的底部锚点。但是,我想知道如何为将来的情况解决这个问题。
试试这个
override func viewDidAppear(_ animated: Bool) {
setUpTextField()
drawUnderLine()
}
let bottomLine = CALayer()
func drawUnderLine(){
textField.layer.addSublayer(bottomLine)
}
override func viewDidLayoutSubviews() {
bottomLine.frame = CGRect(x: textField.bounds.origin.x, y:
textField.bounds.origin.y + textField.bounds.size.height + 2, width:
self.view.bounds.width - 100, height: 1.0)
}
我正在 viewDidAppear
中创建一个 UITextField
,我想使用它的高度在使用 CALayer
的文本字段下方画一条线。正如预期的那样,文本字段的高度为零,因为它尚未绘制!
override func viewDidAppear(_ animated: Bool) {
setUpTextField()
drawUnderLine()
}
func drawUnderLine(){
let bottomLine = CALayer()
bottomLine.frame = CGRect(x: textField.bounds.origin.x, y: textField.bounds.origin.y + textField.bounds.size.height + 2, width: self.view.bounds.width - 100, height: 1.0)
textField.layer.addSublayer(bottomLine)
}
我的解决方法是使用 UIView
画一条线,并将该线的顶部锚点设置为等于文本字段的底部锚点。但是,我想知道如何为将来的情况解决这个问题。
试试这个
override func viewDidAppear(_ animated: Bool) {
setUpTextField()
drawUnderLine()
}
let bottomLine = CALayer()
func drawUnderLine(){
textField.layer.addSublayer(bottomLine)
}
override func viewDidLayoutSubviews() {
bottomLine.frame = CGRect(x: textField.bounds.origin.x, y:
textField.bounds.origin.y + textField.bounds.size.height + 2, width:
self.view.bounds.width - 100, height: 1.0)
}