我有一个应用程序正在绘制到NSView中。在mouseDown
中,我将该位置保存在我的数据模型中,然后在视图的drawRect
方法内的该位置绘制图形。它一切正常。在NSView中高效绘图drawRect
在我的mouseDown
结束时,我打电话给[self setNeedsDisplay:YES];
强制重绘。唯一的问题是dirtyRect
始终是视图的完整大小。我想尽可能地优化它,这样我就不会为整个窗口重新绘制几个更改的像素。
所以现在我打电话[self drawRect:...]
而不是指定矩形。
现在在我的drawRect
我比较每个图形,我必须看它是否落入dirtyRect。看来我已经把绘图工作交给了边界检查工作。我不确定我是否已经使其效率更高或更低。
那么标准做法是什么?只重绘视图中的所有内容并忽略dirtyRect常见?有没有一个很好的功能,我可以用它来测试我的对象是否在dirtyRect
?
谢谢,这是我一直在寻找的信息。 – spartygw 2013-03-02 01:22:56