Я создаю новое приложение для iOS с быстрым и пытаюсь создать собственный класс IBDesignable UIButton для использования в дизайнере. Мой код не работает ни в конструкторе, ни в самом приложении во время выполнения. Значение по умолчанию, которое я дал переменным IBInspectable, к ним не относится.
@IBDesignable class MyButton: UIButton {
@IBInspectable var backColor: UIColor = UIColor.red {
didSet {
self.backgroundColor = backColor
}
}
@IBInspectable var textColor: UIColor = UIColor.white {
didSet {
self.setTitleColor(textColor, for: .normal)
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
setup()
}
private func setup() {
titleLabel?.font = UIFont.systemFont(ofSize: 17)
contentEdgeInsets = UIEdgeInsets(top: 8, left: 0, bottom: 8, right: 0)
layer.cornerRadius = (frame.height / 2)
setTitle(title(for: .normal)?.uppercased(), for: .normal)
}
}
Я ожидаю увидеть кнопку в дизайнере/приложении с красным фоном и белым текстом, и ничего из этого не происходит. Я использую Swift 4.2 и Xcode 10.1.