在我的应用中,我在此视图中有一个自定义视图containerView
,有超过20个标签,我想对所有这些标签应用边框样式。
有没有办法避免为每个人添加边框而避免使用长列表?
类似于:
for each label in containerView {
labels.layer.borderColor = UIColor.greenColor.CGColor
}
答案 0 :(得分:2)
创建一个这样的子类:
@IBDesignable
class BorderedLabel: UILabel {
@IBInspectable var borderColor: UIColor? {
didSet {
layer.borderColor = borderColor?.CGColor
}
}
@IBInspectable var borderWidth: CGFloat = 0 {
didSet {
layer.borderWidth = borderWidth
}
}
}
然后在界面构建器中更改标签的自定义类,设置您喜欢的borderColor / borderWidth属性,并在界面构建器中查看结果!
答案 1 :(得分:1)
您需要设置borderWidth
。
for subview in self.view.containerView.subviews as! [UIView] {
if let label = subview as? UILabel {
label.layer.borderColor = UIColor.greenColor().CGColor
label.layer.borderWidth = 1
}
}
Swift 4
label.layer.borderColor = UIColor.green.cgColor
答案 2 :(得分:1)
您可以使用:
for view in self.view.containerView.subviews as! [UIView] {
if let label = view as? UITextField {
label.layer.borderColor = UIColor.blueColor().CGColor;
label.layer.borderWidth = 1;
}
}
}
答案 3 :(得分:0)
我的解决方案是:
for imageViews in self.containerView.subviews as! [UIImageView] {
imageViews.layer.borderColor = UIColor.greenColor().CGColor
imageViews.layer.borderWidth = 1
}