我正在UITextField
中创建一个viewDidAppear
,我想使用其高度使用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
绘制一条线,并将该线的顶部锚点设置为与文本字段的底部锚点相等。但是,我想知道如何在将来的情况下解决此问题。
答案 0 :(得分:1)
尝试
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)
}