2011年1月13日木曜日

drawRect 再描画の注意点

UIViewなどにdrawRectで描画した線や図形を消去、再描画するには
//全再描画
[drawView setNeedsDisplay];
//一部再描画なら
[drawView setNeedsDisplayInRect:CGRectmake(0,0,100,100)];
をする。注意したいのはdrawViewが元々透明でなければ
前回分の描画が残ってしまうということ。

drawViewのinitWithFrameメソッド内にでも透明プロパティを設定すること!
※初期値は不透明の設定
drawView.opaque=YES
drawRectで描いたものはUIViewの背景色みたいな扱いだから
違う位置に再描画しても前回分が残ってしまうのかなーとか思うことに。
ちなみに前回分を消去して画面をクリアにしたい場合は、View自体になんか
フラグでも持たせてdrawRect内の描画部分をフラグによって素通りするように
すればいいと思います。