1

画面に小さなグラフィック (線とパス) を描画する iOS プロジェクトを開発しています。

最初は OpenGL の代わりに Quartz を使用することにしました。これは、いくつかの基本的な形状を表示する必要があり、5 秒ごとに更新する必要があるためです。

ビューに単純に描画することはできないことがわかりましたが、UIView をサブクラス化し、drawRect メソッドで描画する必要があります。

私のプロジェクトでは、ユーザーはグラフィックスをピンチしてズームできるはずなので、ビューにピンチジェスチャーを追加する予定でしたが、ピンチ後にすべてを再描画する方法について疑問があります。drawRectがトリガーされるように、すべてを消去してサブビューを再度追加する必要がありますか、それともこれを行うためのより良い方法がありますか?

どうもありがとう。

4

1 に答える 1

1

Quartz を使用する場合、技術的にはビューをサブクラス化して を置き換える必要はありませんdrawRect、おそらくベスト プラクティスです。ウィンドウを再描画する場合は、呼び出すだけです[self setNeedsDisplay];(サブクラス化されたビューから呼び出す場合、または[self.view setNeedsDisplay];ビュー コントローラーから呼び出す場合)。これにより、drawRectメソッドが呼び出され、すべてが処理されます。

詳細については、setNeedsDisplayドキュメントを参照してください。

于 2013-02-05T13:24:41.920 に答える