|
|
1
3
首先要做的是不要假定NIB加载是瓶颈,而没有直接的证据证明它是瓶颈。笔尖加载是高度优化和非常有效的。您的瓶颈更有可能是网络请求,而不是NIB。在你做任何事情之前,使用工具获取关于应用程序在哪里花费时间的具体数据。 假设是笔尖, Andiih answer 是最好的分析,但在我看来,你真的有一个设计问题。 听起来你需要把你的大笔尖分成小笔尖。 每个笔尖有一个视图是很常见的。例如,假设您有一个应用程序,它有一个带有五个选项卡的选项卡。然后每个选项卡都有一个表视图,可以打开一个详细视图。在正常设置中,您将有11个独立的笔尖。一个笔尖将定义选项卡,每个选项卡视图一个笔尖,然后每个细节视图一个笔尖。当应用程序启动时,只有标签条和第一个可见标签的笔尖会被加载,所以您只会加载11个笔尖中的两个。 要优化,首先要做的是将其分解为尽可能小的单个笔尖。一个笔尖只在需要时加载。您应该将功能放在整个NIB中,这样,如果不立即显示NIB的视图,就不会加载该NIB。 NIB只是轻量级的数据文件,所以不要害怕创建99%相同的NIB。例如,我经常对每个纵向和横向视图使用单独的视图。对于用户来说,它是一个视图,但我有三个独立的笔尖。我这样做的情况下,它很容易使用一个完全独立的视图,而不是旋转一个单一的复杂视图。每个笔尖在使用其方向时加载。如果方向不变,则不会加载。 如果您有一个复杂的接口,它会根据网络请求发生显著的变化,那么在运行时为每个变化单独设置NIB的速度将比将所有功能塞进一个NIB的速度更快。 |
|
|
2
1
我不知道这是否真的有效,但是您可以在每个控制器中的initwitcoder中放入日志语句,该控制器将作为每个子XIB负载调用。这可能会给你一些线索。 我想仪器不会给你任何有用的东西吗? |
|
|
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 1 年前 |
|
|
routern · 如何组合contextMenu和圆角矩形? 1 年前 |
|
|
DevHome98 · 3D触摸不适用于设备swift 2 年前 |
|
|
dunoiww · 从全屏返回时如何触发onAppear 3 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 3 年前 |
|
|
Community wiki · 查找iOS日历 3 年前 |
|
|
Community wiki · 有效的IPhone编程技术[关闭] 3 年前 |