在xib,storyboard中有固定的属性可以设置例如
image.png
但是很多时候我们有自己定义的属性,比如国际化,我们的text不是固定的,而是一个key,这个时候如何设置呢?
方法1
通过"连线"的方式,拖拽到代码文件中,使用代码设置
image.png
方法2
上述方法虽然可以解决问题,但是每一个控件都要拖拽到代码里显然不是一个最优的方法,比如我们对某一个类同意添加属性(比如国际化,我们需要对UILabel类整体添加设置key的方法)
推荐方案:@IBInspectable
可以将属性(准确来说是计算属性)直接添加到xib的配置项中
Swift
extension UILabel {
@IBInspectable public var localizedKey: String? {
get {
return ""
}
set {
text = newValue
}
}
}
通过扩展UILabel,添加用@IBInspectable
修饰的计算属性localizedKey
,我们就可以实现在xib中配置我们的localizedKey
image.png
如此一来我们就可以完美的解决xib文案的国际化问题