我想知道更多细节如何实现文本样式到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