Подкласс UIButton не может вызвать инициализатор buttonType - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь создать подкласс UIButton, чтобы его инициализатор по умолчанию настраивал его так же, как если бы вы вызвали 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 голосов
/ 21 мая 2018

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")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...