我在Swift中创建了UILabel的子类我想根据它的标签类型自定义标签的某些属性,如字体,颜色大小等。
此标签在故事板文件中创建。为了识别labe的类型,我创建了一个自定义属性名称'labelType',这个labelType一旦被赋值,就永远不会改变它的值。所以我们应该创建这个属性'let',但问题是我们需要在调用 initWithCoder 之前定义这个属性。
我们如何在initWithCoder中动态设置它的初始值? (或任何其他默认构造函数?)
目前我已将该属性设为var并且我从storyboard本身设置该属性的值(用户定义的运行时属性)
这是代码
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