有两种不同的方法可以从XIB创建自定义视图
extension UIView {
static func instanceFromNib<T: UIView>() -> T {
return Bundle.main.loadNibNamed(String(describing: self), owner: nil, options: nil)![0] as! T
}
}
extension UIView {
static func instanceFromNib<T: UIView>() -> T {
return UINib(nibName: String(describing: self), bundle: nil).instantiate(withOwner: self, options: nil)[0] as! T
}
}
我想知道,两者之间有什么区别?
哪一种是更好的方法,还是真的没关系?
没有任何区别。前者是我通常使用的,但是仅仅是因为它是较旧的版本,所以我从Storyboards之前使用的内容就稍微多了一些。UINib直到iOS 4才被添加。在此之前,没有任何方法可以表示NIB本身,并且您无法从数据(NSData / Data)中加载NIB。当您不想缓存NIB时,或者当您想动态加载NIB(而不是从捆绑软件中)时,添加了一些技巧。但是这些确实是不起眼的案例。
通常,Bundle版本会短一些,这也是我推荐的版本。但是,无论您喜欢哪个。它们是等效的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句