У меня есть протокол, какOverride UIButton BackgroundColor свойство с протоколом
protocol ButtonPresentable {
var backgroundColor: UIColor { get }
}
extension ButtonPresentable {
var backgroundColor: UIColor? {
return UIColor.red
}
}
У меня есть кнопка пользовательский класс (зачерпнуть IB), который реализует свой протокол
class MyButton: UIButton, ButtonPresentable {
}
Почему этот протокол не " переопределить 'родное свойство backgroundColor?
Я хотел бы иметь реализацию протокола по умолчанию, которая будет устанавливать фон по умолчанию для всех кнопок. Существует ли ориентированный на протокол способ установки значений по умолчанию для всех цветов фона UIButton?
EDIT: На самом деле я делаю что
protocol ButtonPresentable {
var pBackgroundColor: UIColor { get }
}
extension ButtonPresentable {
var pBackgroundColor: UIColor? {
return UIColor.red
}
func applyTheme() {
self.backgroundColor = pBackgroundColor
}
}
// In my custom view
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.applyTheme()
}
Добавить 'override' ключевое слово перед объявлением 'var'. Вы проверили это? – Adolfo
@Adolfo Nope! Не работает – Ludovic