我尝试通过调用 instantiateWithOwner 从 nib 加载自定义 uiview
func loadViewFromNib() -> UIView {
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "myCustomView", bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
return view
}
视图加载成功,但加载时间过长(5 秒)。当我跟踪代码时,我发现此行延迟的原因:
let view = nib.instantiateWithOwner(self, options: nil)[0] as! UIView
我删除了所有自动布局约束,但它仍然延迟调用
我有同样的问题,我发现这是由于来自UILabel或其他视图的字体需要字体。将字体更改为"系统字体"解决了问题。
如果您从笔尖中删除所有子视图,您会注意到加载时间非常快。然后逐个添加子视图,以检查哪个视图减慢了时间。