我試圖將一個IBInspectable
顏色添加到UIView中,以便我可以在故事板中設置它並稍後在代碼中使用它。在this post regarding UITextField我見過我可以利用擴展並添加一個計算屬性,但我不能讓它適用於UIView。無法在UIView中設置@IBInspectable計算屬性
我得到一個崩潰:無法設置(additionalColor1)用戶定義的檢查上(UIView的)屬性:[setValue方法:forUndefinedKey:]:這個類不是密鑰值編碼兼容的關鍵additionalColor1。
任何想法是什麼導致崩潰和如何解決它?
這裏是我的代碼:
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'添加到setter仍然會導致崩潰。 – Andrej
我很困惑。我原來的評論(很快被刪除)也詢問您是否可以將IBInspectable放入擴展中。然後我注意到你聲稱你可以(placeHolderColor)。因此,假設它可以,爲什麼你不同的編碼additionalColor1?你有一個明確的getter/setter在一個,但不是另一個。並且(我認爲)如果您爲additionalColor1刪除了IBInspectable概念,那麼您已經編寫了一個只讀屬性。 – dfd