绘制Rect和优化

时间:2012-08-08 03:07:43

标签: cocoa-touch optimization drawing

我有一个NSMutableArray持有对象(对象代表弧);

每次点击屏幕时,都会在数组中添加一个圆圈,并且绘制rect设置需要更新。我没有打电话给drawRect:,只是告诉它需要更新。

每次drawRect:查看圈子数组时,是否重新绘制每个圈子,或者仅重新显示/之前没有更改的内容?

如果它重新绘制每个圆圈,是否有任何优秀的做法可以针对此进行优化?

2 个答案:

答案 0 :(得分:1)

你的绘图代码正在完成它所说的任何内容 - 如果你已经编写它来绘制每个圆圈,那么每个圆都被绘制出来。您可以编写drawRect:方法,使其考虑传递的矩形,即视图的“脏”部分 - 需要更新的部分,但如果您已确定,则唯一值得这样做,通过测试和测量,您的绘图是性能问题。

Cocoa Touch 剪裁您的绘图,以便 it 不必刷新整个屏幕,如果不是setNeedsDisplay,你使用setNeedsDisplayInRect:,传递一个合适的脏矩形。例如,当添加一个新圆时,你可以只传递每个新圆的边界矩形。

答案 1 :(得分:0)

你的意思是你在调用setNeedsDisplay吗?如果是这样,该方法会重绘整个视图。您可以使用setNeedsDisplayInRect:如果您只想重绘视图的一部分。