在我的应用程序中,我需要有很多具有类似属性的标签。让我们说它们都必须是绿色的。我不想每次都说lbl.color = UIColor.greenColor()
。如何创建自定义对象类/结构允许我说var myLbl = CustomLbl()
(CustomLbl
是我的类)。
我不确定这是否是所谓的做法。如果没有,我可以用其他方式做到这一点 此外,在我的应用程序中我会有更多的属性,但我只选择这个作为一个例子。
谢谢!
答案 0 :(得分:1)
您应该使用基类来创建自己的标签,按钮等。
class YourLabel: UILabel {
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
//you can set your properties
//e.g
self.color = UIColor.colorGreen()
}
答案 1 :(得分:1)
无需子类,您只需添加一个方法来根据需要配置标签:
func customize() {
self.textColor = UIColor.greenColor()
// ...
}
和一个静态函数,它创建一个UILabel
实例,自定义并返回它:
static func createCustomLabel() -> UILabel {
let label = UILabel()
label.customize()
return label
}
将它们放在UILabel
扩展程序中,您就完成了 - 您可以创建一个自定义标签:
let customizedLabel = UILabel.createCustomLabel()
或将自定义应用于现有标签:
let label = UILabel()
label.customize()
更新:为清晰起见,必须将2种方法放在扩展程序中:
extension UILabel {
func customize() {
self.textColor = UIColor.greenColor()
// ...
}
static func createCustomLabel() -> UILabel {
let label = UILabel()
label.customize()
return label
}
}