1

私はiPhoneアプリでシーンを描くのに最適な方法を見つけようとしています。状況は次のとおりです。

  • 描きたいビューが1つあります
  • 背景画像が欲しいのですが
  • 背景の上にいくつかの異なる画像を描画したいと思います。それぞれに個別の変換(回転、スケーリング)が適用されています。
  • 背景画像の上にもいくつかのテキストブロックを描画したいのですが、これらを単語で分割し、変換する必要があります(回転、スケーリング)
  • 画面に描画されているこれらの画像とテキストのブロックをアニメーション化したいと思います(最初の反復でこれを行う必要はありませんが、将来これを行うことを妨げるパスを選択したくありません。

どこから始めればよいのかよくわかりませんが、アニメーション化があまり進んでいないため、これが実際にパフォーマンスを発揮する必要はないように思われるので、Quartzが進むべき道だと思います。

私が考えることができるいくつかの可能な解決策:

  • クォーツを使用する:ビューのcgcontextに背景を描画します。いくつかのCGLayerを作成し、それらにテキスト/画像を描画します。CGlayersを変換し(これを実行できますか?)、レイヤーをメインのCGContextに描画します。

  • OpenGLを使用してください:いいえ。本当に必要な場合を除いて。

アイデア?

ありがとう。

4

2 に答える 2

1

CALayers画像(変換を適用できます)とテキストにはCoreAnimationを使用UILabelsします。CoreGraphicsを使用した描画は、アニメーション化するには遅すぎます。

于 2009-07-07T21:42:50.187 に答える
1

マルコにほぼ同意します。CAはこの作業に最適です。ビューを設定し、一連のレイヤーを追加します。

ただし、いくつかのポイントがあります。

NSString UIStringDrawingカテゴリメソッドを使用して、テキストを直接描画できます。非常にうまく機能し、UILabelのオーバーヘッドはありません。

CoreAnimationはレイヤーをインテリジェントにキャッシュするため、CoreGraphicsを使用した描画はそれほど遅くありません。つまり、1回だけ描​​画され、レイヤーにsetNeedsDisplayメッセージが送信されない限り、CAはコピーをアニメートします。

于 2009-07-07T23:56:41.790 に答える