Я хочу создать 2 инициализатора для своего пользовательского класса кнопок, который выглядит следующим образом:
protocol CustomButtonProtocol {
var title: String { get set }
var cornerRadius: CGFloat { get set }
var backgroundColor: UIColor { get set }
}
struct Button: CustomButtonProtocol {
var title: String
var cornerRadius: CGFloat
var backgroundColor: UIColor
}
class CustomButton: UIButton {
var title: String? {
didSet {
self.setTitle(title, for: .normal)
}
}
var cornerRadius: CGFloat = 0.0 {
didSet {
self.layer.cornerRadius = cornerRadius
}
}
var color: UIColor? {
didSet {
self.backgroundColor = color
}
}
override init(frame: CGRect) {
super.init(frame: frame)
}
init(with frame: CGRect, button: Button) {
super.init(frame: frame)
self.title = button.title
self.cornerRadius = button.cornerRadius
self.backgroundColor = button.backgroundColor
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Я хочу иметь 2 инициализатора, первый - простой init, второй - с моим Button
, но проблема в том, что он изменяет ТОЛЬКО фоновый цвет, но не имеет свойств title
и cornerRadius
и Я не могу найти, почему это происходит. Может я чего-то не вижу, не могли бы вы помочь мне с поиском ошибки?