我想知道更多細節如何實現文本樣式到UILabel。 我想在Storyboard的IBInspectable字段中鍵入String,獲取此值並在樣式文件(開關大小寫)中查找它。UILabel擴展,用戶定義的運行時屬性
我試圖這樣這樣做:
設置「自定義屬性運行」。
關鍵路徑的風格,
類型爲
字符串,
值 「你好」
我讀過,我應該也宣佈在UILabel類所以這個屬性:
extension UILabel{ var style: String? { get(){ return self.style // it always fails } set(newValue){ objc_setAssociatedObject(self, "styleNew", newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN) //instead of self.style = newValue } }
}
我稱它在viewDidAppear方法作爲出口屬性:
`print("Style", self.infoLabel.valueForKey("styleNew"))`
也
`print("Style", self.infoLabel.styleNew)`
當我設法得到它失敗的價值。我得到「bad_exc_access」錯誤,我試圖修復它,但我不明白這一行爲,並且對apple.developer沒有任何說明。我發現只有教程,與cornerRadius,borderColor和這樣的工作人員的問題。 我試圖用objc_getAssociatedObject(self, "styleNew")
替換返回return self.styleNew
,但它也沒有幫助。
你的代碼對我很有幫助,對我來說一切正常,但是如何獲得{return「something」},那麼如何在不返回它的情況下獲得正確的價值呢?可能嗎?那麼設置這個值呢?其實你在那裏做什麼只是調用另一種方法來選擇風格。對我來說,我無法將getter&setter設置爲自己,這很奇怪。 – rudald