OC中通過XIB自定義View
首先是創(chuàng)建一個類文件,當(dāng)然是是繼承想要自定義的控件,然后編寫一個用于快速獲取實例的類方法,代碼如下:
+ (instancetype)someViewinitWithXIB{
return [[NSBundle mainBundle]loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil].lastObject;
}
在獲得實例對象之前需要做一些必要的設(shè)置的話通常是重寫下面這個方法
- (void)awakeFromNib{
[super awakeFromNib];
}
如果需要外部傳一些參數(shù)的話通常將這些參數(shù)寫成一個模型類,然后重寫該模型類的set方法即可,如下
- (void)setModel:(Model *)model{
_model = model;
//根據(jù)模型做一些設(shè)置
}
然而,初學(xué)swift,想通過OC的方法模仿代碼最終得到下面可行的代碼:
static func customView() -> CustomView{
return Bundle.main.loadNibNamed(String(describing: self), owner: nil, options: nil)?.last as! CustomView
}
也可以重寫awakeFromNib來做一些設(shè)置,甚至可以修改上面的類方法做一些設(shè)置
大家都是怎么寫的? 話說Swift 的awakeFromNib會調(diào)用兩次這樣沒問題嗎?
請各路大神指教