我有一个主菜单,是一个UITableViewController。如果手机处于纵向模式,然后我转到另一个viewController,然后将手机旋转到横向模式,然后点击后退按钮返回到UITableViewController,那么在返回之前会有大约2秒的延迟(在iPhone 5上)。iPhone 4s上的延迟约为4秒。
更新:分析器显示时间花在系统函数[UITableViewCell setFrame:]
上。该函数中的大部分时间都在[UIView(AdditionalLayoutSupport) _recursiveLayoutEngineDidChange]
中。
更新2:更多的挖掘表明罪魁祸首是AutoLayout。关闭AutoLayout完全解决了性能问题。
发布于 2013-05-30 20:28:17
在构建->配置文件中使用Xcode的时间分析器来查看是什么导致了延迟。几乎可以肯定的是,在您编写的一些代码中就有。这里是教程:http://blancer.com/tutorials/flex/78335/apple-profiling-tools-shark-is-out-instruments-is-in/
发布于 2013-05-30 21:21:08
这种缓慢是由AutoLayout引起的。我的表格中的单元格是使用AutoLayout约束进行布局的自定义UITableViewCells。
关闭AutoLayout并使用旧的struts和springs系统完全解决了速度慢的问题。
https://stackoverflow.com/questions/16845261
复制相似问题