1

CATiledLayerに支えられたこのUIViewがあります。私のセットアップは現時点ではかなりスムーズに機能しますが、このCATiledLayerで特定のビューオブジェクトをアニメーション化するときに恐怖が始まります。

を使用して、CATiledLayerを強制的に再描画できることを読みましたsetNeedsDisplay。しかし、これは実際には画面上のすべてを再描画します。したがって、すべてのタイルが再度ロードされます。

何かがアニメートしているときにレイヤーを更新するにはどうすればよいですか?例として、次の例を見てみましょう。レイヤーに6つの緑色の長方形があり、UIButtonを押したときに、長方形番号4の色を赤に変更し、長方形12と3をベジェ曲線に再配置します。

4

1 に答える 1

2

CATiledView:setNeedsDisplayInRect:を使用して、レイヤーの一部のみを描画できます。

あなたの場合、あなたはすべきです:

  1. 新しい色で4を再描画します
  2. 長方形なしで1、2、3の古い位置を再描画します
  3. 1、2、3に新しい位置を再描画します
于 2011-06-27T11:35:50.007 に答える