Gao*_*Hsu 2 drawrect ios setneedsdisplay
在我的情况下,在drawRect:调用每个单元后不会立即setNeedsDisplay调用.例如,我认为以下代码与我的情况相同.
for (int i = 0; i < 100; ++i)
{
[self setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)
从文档:
当视图的实际内容发生变化时,您有责任通知系统您的视图需要重新绘制.您可以通过调用视图的视图的setNeedsDisplay或setNeedsDisplayInRect:方法来完成此操作.这些方法让系统知道它应该在下一个绘图周期中更新视图.因为它会等到下一个绘图周期来更新视图,所以您可以在多个视图上调用这些方法来同时更新它们.
drawRect:只会及时调用下一帧的绘制,这意味着整个循环只会drawRect:在下一次渲染迭代时被调用一次.这节省了不必要的计算,因为它避免了绘制永远不会在屏幕上显示的帧.它还允许您在代码中的不同位置进行多项更改,每次都通知视图需要刷新而不会降低性能,因为调用setNeedsDisplay只会告诉绘图系统在下一帧中需要重绘; 它不会强制立即渲染可能永远不会在屏幕上显示的帧.
| 归档时间: |
|
| 查看次数: |
1028 次 |
| 最近记录: |