【发布时间】:2012-10-09 22:43:36
【问题描述】:
在我的应用程序中的一个 UIView 中,似乎在 -drawRect: 完成之后,其内容在屏幕上呈现之前存在延迟。
在-drawRect:中绘制完成和显示更新的视图之间是否发生了什么?
【问题讨论】:
在我的应用程序中的一个 UIView 中,似乎在 -drawRect: 完成之后,其内容在屏幕上呈现之前存在延迟。
在-drawRect:中绘制完成和显示更新的视图之间是否发生了什么?
【问题讨论】:
drawRect: 方法由 UIView 的drawLayer:inContext: 方法自动调用。一旦发生这种情况,drawRect: 中执行的绘图操作将呈现到图像上下文中。然后,视图层将其内容设置为来自上下文的渲染图像。
你怎么知道延迟是在 drawRect: 完成之后?我建议对其进行分析以确保这是您滞后的根源。未优化的绘图肯定会导致延迟,但不要过早优化。
【讨论】:
在操作周期结束时收集并完成所有图纸更新。因此,如果您注意到延迟,那么在渲染绘图更改之前还有其他过程需要完成。此外,绘图是一个昂贵的过程。
【讨论】: