2

我在 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

故事板的图像

4

0 回答 0