1

在我的应用程序中,我需要有很多具有相似属性的标签。假设它们都必须是绿色的。我不想lbl.color = UIColor.greenColor()每次都说。我怎样才能制作一个自定义对象类/结构,让我说类似var myLbl = CustomLbl()CustomLbl作为我的类)。

我不确定这是否是你应该这样做的。如果没有,我以其他方式做这件事没有问题。
此外,在我的应用程序中,我将拥有更多属性,但我仅选择此作为示例。

谢谢!

4

2 回答 2

1

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

class YourLabel: UILabel {

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

        //you can set your properties    
        //e.g
        self.color = UIColor.colorGreen()
}
于 2015-07-01T11:45:51.987 回答
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()

更新:为清楚起见,这两种方法必须放在扩展中:

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

    static func createCustomLabel() -> UILabel {
        let label = UILabel()
        label.customize()
        return label
    }
}
于 2015-07-01T13:07:30.240 回答