0

長方形を描く関数があります。drawRect 内で呼び出された場合、イメージは完全に描画されます。関数を直接呼び出すと、四角形が描画されません。setNeedsDisplay検索したところ、はいする必要があることがわかりました。しかし、それでもうまくいきません。

4

2 に答える 2

2

システムがメソッドを呼び出したときにのみ、ウィンドウに描画できますdrawRect:。直接呼び出してはいけません。システムは、呼び出す前にグラフィックス コンテキストをアクティブ化し、drawRect:呼び出しの前後にさまざまなハウスキーピング機能を実行します。

ウィンドウ全体の再描画を明示的に要求するには、次のように呼び出します。

[view setNeedsDisplay:YES];

これによりdrawRect:、次のイベント ループでメソッドが呼び出されます。

ドキュメントには、これらすべてが詳細に記載されています。

于 2013-09-09T12:58:05.737 に答える