Swift中的自定义对象类

时间:2015-07-01 11:10:06

标签: xcode swift class custom-object

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

我不确定这是否是所谓的做法。如果没有,我可以用其他方式做到这一点 此外,在我的应用程序中我会有更多的属性,但我只选择这个作为一个例子。

谢谢!

2 个答案:

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