NSViewに描画しているアプリケーションを作成しています。ここでは、データモデルに場所を保存してから、ビューのメソッドmouseDown
内でその場所にグラフィックを描画しています。drawRect
それはすべてうまくいきます。
私の終わりに、私は再描画を強制するmouseDown
ように呼びかけていました。[self setNeedsDisplay:YES];
唯一のことは、dirtyRect
が常にビューのフルサイズであるということです。変更された数ピクセルだけでウィンドウ全体を再描画しないように、これを可能な限り最適化したかったのです。
代わりに、代わりに呼び出し[self drawRect:...]
て長方形を指定しています。
今、私drawRect
はすべてのグラフィックを比較して、それがdirtyRectに該当するかどうかを確認する必要があります。ドローイングの仕事を、すべてをチェックする境界の仕事と交換したようです。多かれ少なかれ効率的にしたかどうかはわかりません。
では、標準的な方法は何ですか?ビュー内のすべてを再描画し、dirtyRectを無視するのが一般的ですか? オブジェクトがにあるかどうかを確認するためのテストとして使用できる優れた関数はありますdirtyRect
か?