アイコンを数秒間タッチしてホーム画面カスタマイズモードに入るときに、ホーム画面のアイコンとほぼ同じように回転する12のビューがあります。
3D変換コードを使用して回転を行います。それぞれの持続時間はわずか0.02秒で、加速度の測定時に回転の角度と方向が恒久的に変化します。
これらのビューのうち5つは問題ありませんが、12はパフォーマンスが非常に悪いです。ローテーションコードは次のとおりです。
CATransform3D rotatedTransform = CATransform3DRotate(CATransform3DIdentity, degrees * M_PI / 180.0, 0.0f, 0.0f, 1.0f);
self.layer.transform = rotatedTransform;
その周りにいくつかのコアアニメーションがラップされています。しかし、私は3Dのことを何もしていないので、ここではCPUの浪費が見られます。私は実際には2Dを回転させるだけで、他には何も回転しません。これらは単純なUIImageViewsですが、この回転アニメーションを自分で実行するカスタムクラスです。
2D空間で機能するはずの「アフィン」変換があると聞きました。この場合、それを2Dに変更することをお勧めしますか?
レイヤーまたはビューの変換を変更することを選択する必要がありますか?どちらが速いですか?