Swift 中的自定义对象 class

Custom object class in Swift

在我的应用程序中,我需要有很多具有相似属性的标签。假设它们都必须是绿色的。我不想每次都说 lbl.color = UIColor.greenColor()。我如何制作自定义对象 class/struct 允许我说 var myLbl = CustomLbl()CustomLbl 是我的 class)。

我不确定您是否应该这样做。如果没有,我也可以通过其他方式做到这一点。
另外,在我的应用程序中我会有更多的属性,但我只选择了这个作为示例。

谢谢!

您应该使用基础 类 来创建您自己的标签、按钮等。

class YourLabel: UILabel {

    init(coder aDecoder: NSCoder!) { 
        super.init(coder: aDecoder) 

        //you can set your properties    
        //e.g
        self.color = UIColor.colorGreen()
}

无需子类化,您只需添加一个方法即可根据需要配置标签:

func customize() {
    self.textColor = UIColor.greenColor()
    // ...
}

和一个创建 UILabel 实例、定制和 returns 实例的静态函数:

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
    }
}