给 UIView 添加多个子层只会显示一个
Posted
技术标签:
【中文标题】给 UIView 添加多个子层只会显示一个【英文标题】:Adding multiple sublayers to UIView will only display one 【发布时间】:2015-08-31 02:57:52 【问题描述】:尝试为我的登录系统添加底部边框,我使用了以下代码:
var bottomBorder = CALayer()
bottomBorder.frame = CGRectMake(0.0, userEmailAddressTextField.frame.size.height - 1, userEmailAddressTextField.frame.size.width, 1.0)
bottomBorder.backgroundColor = UIColor.blackColor().CGColor
userEmailAddressTextField.layer.addSublayer(bottomBorder)
我也在尝试对我的密码文本字段执行此操作。我使用了多种技术,但似乎都没有奏效。
第一次尝试:再次添加相同的代码,这只会显示第二个栏的底部边框。
第二次尝试:我尝试了同样的事情,但将不同的变量设置为 bottomBordertwo,然后复制代码,但这也不起作用。有什么解决办法吗?
【问题讨论】:
你的 textField 是 IBoutlet 还是以编程方式创建的? 【参考方案1】:创建一个通用函数
func addBottomLayerToTheView(view:UIView)
var bottomBorder = CALayer()
bottomBorder.frame = CGRectMake(0.0, view.frame.size.height - 1, view.frame.size.width, 1.0)
bottomBorder.backgroundColor = UIColor.blackColor().CGColor
view.layer.addSublayer(bottomBorder)
在创建文本字段或任何其他需要底层的视图后调用此函数,例如:
在viewDidLoad()
addBottomLayerToTheView(textField)
addBottomLayerToTheView(textField2)
addBottomLayerToTheView(anyView)
【讨论】:
以上是关于给 UIView 添加多个子层只会显示一个的主要内容,如果未能解决你的问题,请参考以下文章