Я пытаюсь добавить цвет IBInspectable
в UIView, чтобы я мог установить его в раскадровке, а затем использовать его в коде. В this post regarding UITextField Я видел, что я могу использовать расширения и добавлять вычисленное свойство, но я не могу заставить его работать для UIView.Невозможно установить @IBInspectable вычисляемое свойство в UIView
я получаю аварию: Не удались установить (additionalColor1) определенный пользователь досматриваемой собственность на (UIView): [SetValue: forUndefinedKey]: этот класс не является значением ключа кодирования совместимым для ключ дополнительныйColor1.
Любая идея, что вызывает крушение и как его исправить?
Вот мой код:
extension UIView {
@IBInspectable var additionalColor1: UIColor? {
return self.additionalColor1
}
}
Для справки, я вставить код, который может быть использован для установки цвета заполнителя для UITextField (так же, как и выше URL). Это работает нормально:
extension UITextField {
@IBInspectable var placeHolderColor: UIColor? {
get {
return self.placeHolderColor
}
set {
self.attributedPlaceholder = NSAttributedString(string: self.placeholder != nil ? self.placeholder! : "", attributes:[NSForegroundColorAttributeName: newValue!])
}
}
}
Как установить * self.additionalColor1 *? Если он находится в коде, как его может выполнить инструмент времени разработки? – dfd
Afaik 'self.additionalColor1' должен быть установлен в раскадровке. Я вставил изображение, показывающее, что я установил его в инспекторе идентификации. В моем скрининге я не обманул сеттера. Однако добавление 'self.additionalColor1 = newValue' в сеттер все равно приводит к сбою. – Andrej
Я смущен. Мой первоначальный комментарий (быстро удаленный) также спросил, можно ли разместить IBInspectable в расширении. Затем я заметил, что вы утверждаете, что можете (placeHolderColor). Так что, предположив, что это возможно, почему вы кодируете дополнительныйColor1 по-другому? У вас есть явный getter/setter в одном, но не в другом. И (я думаю), если вы удалите концепцию IBInspectable для дополнительногоColor1, вы закодировали свойство только для чтения. – dfd