在iOS中,运行循环和显示刷新之间有关系吗?如果有怎么办?
问问题
444 次
2 回答
1
Apple 的iOS 视图编程指南/ 视图和窗口架构 / 视图架构基础 / 视图绘图周期说:
当您的视图内容发生变化时,您不会直接重绘这些更改。相反,您使用
setNeedsDisplay
orsetNeedsDisplayInRect:
方法使视图无效。这些方法告诉系统视图的内容发生了变化,下次有机会需要重新绘制。在启动任何绘图操作之前,系统会一直等到当前运行循环结束。此延迟使您有机会一次性使多个视图无效、从层次结构中添加或删除视图、隐藏视图、调整视图大小和重新定位视图。您所做的所有更改都会同时反映。
(强调补充。)
于 2013-02-22T02:45:30.557 回答
1
Apple 有一个非常好的 WWDC 2012 视频,详细描述了当前 CATransaction 提交和绘制发生以及动画开始时每个运行循环结束时发生的情况。您可能还喜欢阅读我书中对“重绘时刻”的技术性较低的解释:
http://www.aeth.com/iOSBook/ch17.html#_drawing_animation_and_threading
于 2013-02-22T02:50:44.487 回答