【问题标题】:What happens after -drawRect: is called within a UIView?在 UIView 中调用 -drawRect: 之后会发生什么?
【发布时间】:2012-10-09 22:43:36
【问题描述】:

在我的应用程序中的一个 UIView 中,似乎在 -drawRect: 完成之后,其内容在屏幕上呈现之前存在延迟。

-drawRect:中绘制完成和显示更新的视图之间是否发生了什么?

【问题讨论】:

    标签: ios drawrect


    【解决方案1】:

    drawRect: 方法由 UIView 的drawLayer:inContext: 方法自动调用。一旦发生这种情况,drawRect: 中执行的绘图操作将呈现到图像上下文中。然后,视图层将其内容设置为来自上下文的渲染图像。

    你怎么知道延迟是 drawRect: 完成之后?我建议对其进行分析以确保这是您滞后的根源。未优化的绘图肯定会导致延迟,但不要过早优化。

    【讨论】:

    • 你的意思是一旦drawrect完成,图像应该出现在设备的屏幕上吗?谢谢,我会分析一下发生了什么。:)
    【解决方案2】:

    在操作周期结束时收集并完成所有图纸更新。因此,如果您注意到延迟,那么在渲染绘图更改之前还有其他过程需要完成。此外,绘图是一个昂贵的过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2023-03-26
      • 1970-01-01
      相关资源
      最近更新 更多