我有一個應用程序正在繪製到NSView中。在mouseDown
中,我將該位置保存在我的數據模型中,然後在視圖的drawRect
方法內的該位置繪製圖形。它一切正常。在NSView中高效繪圖drawRect
在我的mouseDown
結束時,我打電話給[self setNeedsDisplay:YES];
強制重繪。唯一的問題是dirtyRect
始終是視圖的完整大小。我想盡可能地優化它,這樣我就不會爲整個窗口重新繪製幾個更改的像素。
所以現在我打電話[self drawRect:...]
而不是指定矩形。
現在在我的drawRect
我比較每個圖形,我必須看它是否落入dirtyRect。看來我已經把繪圖工作交給了邊界檢查工作。我不確定我是否已經使其效率更高或更低。
那麼標準做法是什麼?只重繪視圖中的所有內容並忽略dirtyRect常見?有沒有一個很好的功能,我可以用它來測試我的對象是否在dirtyRect
?
謝謝,這是我一直在尋找的信息。 – spartygw 2013-03-02 01:22:56