当我点击返回按钮时,我的一个视图冻结了几秒钟。
此外,当我点击此视图中的一个项目时,它会显示一个弹出窗口(自定义,而不是UIPopoverController
)。这个弹出窗口看起来很快,但是当我“翻转”弹出窗口以查看它的背面时,会出现同样长的延迟。
我怀疑原因与视图的复杂性有关。正如您在下面的屏幕截图中看到的,它是一个集合视图,它有一个背景,并且一些子视图是旋转的(UIViewEdgeAntialiasing已打开)。
我使用 Instruments 中的 Time Profiler 来弄清楚发生了什么,但我被卡住了。
除非我取消选择“隐藏系统库”,否则我看不到任何有用的东西:
如果我查看方法名称,我认为它们与自动布局有关。这表明它试图在 segue 期间渲染一些东西。但是没有调用诸如之类的方法cellForItemAtIndexPath
。
这个应用程序还有一个 iPhone 版本,我根本没有遇到这个问题。它使用 tableview 而不是 collectionview。它也有背景和旋转的图片。
我使用模拟器进行了这些测量;在我的 iPad Mini 上情况更糟;动画开始前最多可能需要 20 秒。
更新-感谢您的回答,我尝试过的事情:
- 关闭
UIViewEdgeAntialiasing
:对性能没有影响