在xib,storyboard中有固定的屬性可以設(shè)置例如
但是很多時(shí)候我們有自己定義的屬性,比如國際化,我們的text不是固定的,而是一個(gè)key,這個(gè)時(shí)候如何設(shè)置呢?
方法1
通過"連線"的方式,拖拽到代碼文件中,使用代碼設(shè)置
方法2
上述方法雖然可以解決問題,但是每一個(gè)控件都要拖拽到代碼里顯然不是一個(gè)最優(yōu)的方法,比如我們對(duì)某一個(gè)類同意添加屬性(比如國際化,我們需要對(duì)UILabel類整體添加設(shè)置key的方法)
推薦方案:@IBInspectable
可以將屬性(準(zhǔn)確來說是計(jì)算屬性)直接添加到xib的配置項(xiàng)中
Swift
extension UILabel {
@IBInspectable public var localizedKey: String? {
get {
return ""
}
set {
text = newValue
}
}
}
通過擴(kuò)展UILabel,添加用@IBInspectable
修飾的計(jì)算屬性localizedKey
,我們就可以實(shí)現(xiàn)在xib中配置我們的localizedKey
如此一來我們就可以完美的解決xib文案的國際化問題