假设我的观点中有两个很小的区域需要重新绘制。一个在左上角,另一个在右下角。我可以使用它们的坐标将包含这两个区域的单个大型CGRect传递给setNeedsDisplayInRect,但这最终将包括许多其他做而不是的区域需要重新绘制。
因此,另一种选择是简单地将包含CGRects的个体传递给setNeedsDisplayInRect,一个接一个,即
[self.view setNeedsDisplayInRect:rectForArea1]
[self.view setNeedsDisplayInRect:rectForArea2]哪种方法更快?最小化drawRect:最终被调用的次数,或者最小化它必须重绘的屏幕区域的数量,即使它必须重绘两次?
发布于 2012-10-28 14:58:54
这不重要。正如所描述的这里,iOS将始终更新整个视图,而不依赖于传递给setNeedsDisplayInRect的rect:
请注意,由于iPhone/iPod /iPad更新屏幕的方式,如果您调用-setNeedsDisplayInRect:或-setNeedsDisplay:,整个视图将被重新绘制。
发布于 2011-07-23 12:46:59
这取决于那两条直线。
如果这两个界加法都是视图界的75%,那么我将简单地调用
[self.view setNeedsDisplay];因为我们画的几乎是全景线。
如果这两个界加法都低于视图界限的50%,那么我将简单地调用
[self.view setNeedsDisplayInRect:rectForArea1];
[self.view setNeedsDisplayInRect:rectForArea2];因为我们需要画小空间
https://stackoverflow.com/questions/6800262
复制相似问题