UIButton的子类无法调用buttonType初始值设定项

时间:2018-05-21 05:32:16

标签: ios swift uibutton initialization uikit

我正在尝试将UIButton子类化,以便其默认的initilizer设置它与调用UIButton(type: UIButtonType.roundedRect)时的方式相同。但是,由于一些Swift限制,我不能说这不是指定的启动器。此外,buttonType属性是只读的。

如何在Swift中执行此操作?

作为参考,此代码无法编译,因为我没有调用指定的初始值设定项。

class ToggleButton : UIButton {
    init() {
        super.init(type: UIButtonType.roundedRect)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("TROUBLE")
    }
}

1 个答案:

答案 0 :(得分:1)

Swift对初始化器有点烦人。这应该为你做。

class ToggleButton : UIButton {
    convenience init() {
        self.init(type: .roundedRect)
    }

    convenience init(type buttonType: UIButtonType) {
        self.init(type: buttonType)
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("TROUBLE")
    }
}