Ios 如何获取ViewDidDisplay中UITextField的高度
我正在Ios 如何获取ViewDidDisplay中UITextField的高度,ios,swift,uitextfield,Ios,Swift,Uitextfield,我正在viewdide中创建一个UITextField,我想使用CALayer使用它的高度在textfield下面画一条线。正如所料,文本字段的高度为零,因为它尚未绘制 override func viewDidAppear(_ animated: Bool) { setUpTextField() drawUnderLine() } func drawUnderLine(){ let bottomLine = CALayer() bottomLine.frame
viewdide
中创建一个UITextField
,我想使用CALayer
使用它的高度在textfield下面画一条线。正如所料,文本字段的高度为零,因为它尚未绘制
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)
}
您是否调用了
addSubLayer
?此外,您可能应该在viewdilayoutsubviews
@TungVuDuc内部设置bottomLine的框架
,我尝试了这一点,并绘制了两条线-当文本字段高度为零时,一条线在y处绘制,然后在右y位置绘制另一条线,尝试将bottomLine
改为全局层,并将其框架设置在viewdilayoutsubviews
@TungVuDuc中,不确定您的意思是什么啊,这有道理!