我在 Swift 中创建了 UILabel 的子类,我想根据标签的类型自定义标签的一些属性,如字体、颜色大小等。
这个标签是在故事板文件中创建的。为了识别标签的类型,我创建了一个自定义属性名称“labelType”,这个标签类型一旦被分配就永远不会改变它的值。所以我们应该创建这个属性是 'let' 但问题是我们需要在调用它的initWithCoder之前定义这个属性。
我们如何在 initWithCoder 中动态设置它的初始值?(或任何其他默认构造函数?)
目前我已将该属性设为 var,并且我正在从情节提要本身设置该属性的值(用户定义的运行时属性)
这是代码
class BMLabel: UILabel {
var labelType:NSNumber!
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
override func awakeFromNib() {
self.setUpProperties()
}
func setUpProperties() {
switch(labelType) {
case 1:
self.font = Constants.FONTS.LIST_UUID_FONT