2

在iOS中,运行循环和显示刷新之间有关系吗?如果有怎么办?

4

2 回答 2

1

Apple 的iOS 视图编程指南/ 视图和窗口架构 / 视图架构基础 / 视图绘图周期说:

当您的视图内容发生变化时,您不会直接重绘这些更改。相反,您使用setNeedsDisplayorsetNeedsDisplayInRect:方法使视图无效。这些方法告诉系统视图的内容发生了变化,下次有机会需要重新绘制。在启动任何绘图操作之前,系统会一直等到当前运行循环结束。此延迟使您有机会一次性使多个视图无效、从层次结构中添加或删除视图、隐藏视图、调整视图大小和重新定位视图。您所做的所有更改都会同时反映。

(强调补充。)

于 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 回答