通过 instantiateWithOwner 在 swift2 中缓慢加载笔尖

Posted

技术标签:

【中文标题】通过 instantiateWithOwner 在 swift2 中缓慢加载笔尖【英文标题】:slow loading of nib in swift2 by instantiateWithOwner 【发布时间】:2016-06-11 14:47:29 【问题描述】:

我尝试通过调用 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

我删除了所有自动布局约束,但它仍然延迟调用

【问题讨论】:

你能解决这个问题吗?使用类似的方法UINib(nibName: Self.className, bundle: nil).instantiateWithOwner(nil, options: nil).first as? Self,我的加载时间也很慢 【参考方案1】:

我有同样的问题,我发现这是由于 UILabel 的字体或其他视图需要字体。将字体更改为“系统字体”即可解决问题。

如果您从 nib 中删除所有子视图,您会注意到加载时间非常快。然后将subview一个一个加回去,看看哪个view拖慢了时间。

【讨论】:

谢谢!!!我从以前的项目中选择了字体,甚至在这个项目中都没有。将它们全部更改为 System 解决了它。如果不是你的帖子,我想我不会想到这一点。再次感谢:-)

以上是关于通过 instantiateWithOwner 在 swift2 中缓慢加载笔尖的主要内容,如果未能解决你的问题,请参考以下文章

下拉框多选框单选框 通过TagHelper绑定数据

在云端开发,但通过远程桌面通过 USB 在本地设备上调试 Android 应用程序

移动端通过ajax上传图片(文件)并在前台展示——通过H5的FormData对象

在c / c ++中何时通过引用传递以及何时通过值传递[重复]

在Android Emulator中没有连接互联网,当通过热点通过手机上网时

通过 Faye 在 Rails 应用程序上进行实时聊天,但通过 Apache 在乘客上进行实时聊天