如何将样式应用于Swift中的所有文本字段

时间:2015-04-01 18:53:54

标签: ios xcode swift

我正在尝试找到将这些边框样式应用到视图控制器中所有文本字段的最有效方法。将此样式分别应用于所有文本字段似乎很疯狂。是否有一种简单的方法可以引用所有文本字段,还是应该创建某种样式类?

    textField.layer.cornerRadius = 8.0
    textField.layer.borderColor = (UIColor .grayColor()).CGColor;
    textField.layer.borderWidth = 1.0

感谢您的帮助!

2 个答案:

答案 0 :(得分:8)

正如Tron5000所说,你可以使用这样的扩展名:

extension UITextField {
    func setPreferences() {
        self.layer.cornerRadius = 8
        self.layer.borderColor = UIColor.grayColor().CGColor
        self.layer.borderWidth = 2
        // etc.
    }
}

然后你可以将所有文本字段收集到一个数组中并迭代它们:

var myTextFields = [UITextField]()

func setColorsAndBorders() {
    myTextFields = [tf1, tf2, tf3, tf4] // etc

    for item in myTextFields {
        item.setPreferences()
    }
}

答案 1 :(得分:2)

我认为您需要为UITextField创建子类或编写扩展名。见本页:

How may i customise all UITextField appearances for borderWidth?