0

私はよくわかりません、私は何を求めているのですか...

...しかし、別々のメソッドでレイヤーコンポジットを作成し、それらを drawRect: メソッドの外でもビューに描画すると... ...アプリのパフォーマンスが向上する可能性はありますか?

実際には、パズルのピースがレンダリングされる puzzlePiece:UIView クラスをサブクラス化していますが、描画の実装は drawRect: メソッドで行われるため、再描画は setNeedsDisplay で呼び出されます。アプリが遅い。

いわゆる drawRect: メソッドを削除すると、パフォーマンスを改善できますか?

実装したいもの: http://gotoandplay.freeblog.hu/

4

1 に答える 1

1

ここでやりたいことは、プレイエリア全体をカバーする非常に単一のシンプルな UIView を持つことだと思います。次に、各タイルを CALayer に配置し、すべての CALayer を UIView にアタッチし、それらを移動して回転させます。次に、-drawRect: はまったく必要ありません。すべての描画をレイヤーで行い、その方法で最高のパフォーマンスを得る必要があります。CALayer は原則として UIView に似ていますが、はるかに軽量です (より高速でシンプルです)。CALayer は基本的に描画のみが可能なビューです。タッチやイベントを処理できません。親ビューはそれを行う必要があります。しかし、それで CALayer をもっと速くしましょう。

于 2010-01-07T23:19:17.363 に答える