我有一个NSMutableArray
持有对象(对象代表弧);
每次点击屏幕时,都会在数组中添加一个圆圈,并且绘制rect设置需要更新。我没有打电话给drawRect:
,只是告诉它需要更新。
每次drawRect:
查看圈子数组时,是否重新绘制每个圈子,或者仅重新显示/之前没有更改的内容?
如果它重新绘制每个圆圈,是否有任何优秀的做法可以针对此进行优化?
答案 0 :(得分:1)
你的绘图代码正在完成它所说的任何内容 - 如果你已经编写它来绘制每个圆圈,那么每个圆都被绘制出来。您可以编写drawRect:
方法,使其考虑传递的矩形,即视图的“脏”部分 - 需要更新的部分,但如果您已确定,则唯一值得这样做,通过测试和测量,您的绘图是性能问题。
Cocoa Touch 将剪裁您的绘图,以便 it 不必刷新整个屏幕,如果不是setNeedsDisplay
,你使用setNeedsDisplayInRect:
,传递一个合适的脏矩形。例如,当添加一个新圆时,你可以只传递每个新圆的边界矩形。
答案 1 :(得分:0)
你的意思是你在调用setNeedsDisplay吗?如果是这样,该方法会重绘整个视图。您可以使用setNeedsDisplayInRect:如果您只想重绘视图的一部分。