我需要在子视图的所有文本字段中添加底线。
这是我的代码。
for view in self.detailView.subviews as! [UIView] {
if let textField = view as? UITextField {
// if textField.text == "" {
// // show error
// return
// }
var border = CALayer()
var width = CGFloat(1.0)
border.borderColor = UIColor.whiteColor().CGColor
border.frame = CGRect(x: 0, y: textField.frame.size.height - width, width: textField.frame.size.width, height: textField.frame.size.height)
border.borderWidth = width
textField.layer.addSublayer(border)
textField.layer.masksToBounds = true
return
}
}
但它只在最后一个文本字段中添加底线而不是全部。 这就是我得到的
我该如何解决这个问题? 谢谢!
答案 0 :(得分:2)
您已在结尾添加了return关键字。
尝试使用像
这样的子视图循环整个视图for view in self.view.subviews as! [UIView] {
if let textField = view as? UITextField {
var border = CALayer()
var width = CGFloat(1.0)
border.borderColor = UIColor.whiteColor().CGColor
border.frame = CGRect(x: 0, y: textField.frame.size.height - width, width: textField.frame.size.width, height: width)
border.borderWidth = width
textField.borderStyle = UITextBorderStyle.None
textField.layer.addSublayer(border)
textField.layer.masksToBounds = true
}
}
我添加了另外一行代码textField.borderStyle = UITextBorderStyle.None
,这样如果边框样式在设计上有所不同,那么它将通过编程方式进行更改。
答案 1 :(得分:0)
非常简单易行的方法 只需放置textfield的背景图片 此图像具有白色背景和下划线,因此您使用透明背景而不是白色背景