如何在viewDidAppear中获取UITextField的高度

时间:2019-04-12 02:59:51

标签: ios swift uitextfield

我正在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绘制一条线,并将该线的顶部锚点设置为与文本字段的底部锚点相等。但是,我想知道如何在将来的情况下解决此问题。

1 个答案:

答案 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)
}