在我的应用程序中,我需要有很多具有相似属性的标签。假设它们都必须是绿色的。我不想lbl.color = UIColor.greenColor()
每次都说。我怎样才能制作一个自定义对象类/结构,让我说类似var myLbl = CustomLbl()
(CustomLbl
作为我的类)。
我不确定这是否是你应该这样做的。如果没有,我以其他方式做这件事没有问题。
此外,在我的应用程序中,我将拥有更多属性,但我仅选择此作为示例。
谢谢!
在我的应用程序中,我需要有很多具有相似属性的标签。假设它们都必须是绿色的。我不想lbl.color = UIColor.greenColor()
每次都说。我怎样才能制作一个自定义对象类/结构,让我说类似var myLbl = CustomLbl()
(CustomLbl
作为我的类)。
我不确定这是否是你应该这样做的。如果没有,我以其他方式做这件事没有问题。
此外,在我的应用程序中,我将拥有更多属性,但我仅选择此作为示例。
谢谢!
您应该使用基类来创建自己的标签、按钮等。
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
实例,自定义并返回它:
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
}
}