OC中通过XIB自定义View
首先是创建一个类文件,当然是是继承想要自定义的控件,然后编写一个用于快速获取实例的类方法,代码如下:
+ (instancetype)someViewinitWithXIB{
return [[NSBundle mainBundle]loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil].lastObject;
}
在获得实例对象之前需要做一些必要的设置的话通常是重写下面这个方法
- (void)awakeFromNib{
[super awakeFromNib];
}
如果需要外部传一些参数的话通常将这些参数写成一个模型类,然后重写该模型类的set方法即可,如下
- (void)setModel:(Model *)model{
_model = model;
//根据模型做一些设置
}
然而,初学swift,想通过OC的方法模仿代码最终得到下面可行的代码:
static func customView() -> CustomView{
return Bundle.main.loadNibNamed(String(describing: self), owner: nil, options: nil)?.last as! CustomView
}
也可以重写awakeFromNib来做一些设置,甚至可以修改上面的类方法做一些设置
大家都是怎么写的? 话说Swift 的awakeFromNib会调用两次这样没问题吗?
请各路大神指教