为视图中的所有标签添加边框

时间:2016-04-02 10:40:31

标签: ios swift

在我的应用中,我在此视图中有一个自定义视图containerView,有超过20个标签,我想对所有这些标签应用边框样式。

有没有办法避免为每个人添加边框而避免使用长列表?

类似于:

for each label in containerView {

   labels.layer.borderColor = UIColor.greenColor.CGColor

}

4 个答案:

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

        }