iPhoneのCoreAnimationには、暗黙のアニメーションと言うものがあって、Flashのトゥイーンのように動きを補完するようです。
でも、今作っている時計アプリで、
針を回して動かす際に、この動きが邪魔になることが分かりました。
暗黙のアニメーションが入ったままだと、上の動画のように針がヌルヌルと遅れて追随するのが気持ち悪いです。
ムービークリップがマウス追随する動きのようです(ActionScriptやってる方なら、1度は試したことがあると思います。あの補完するような動きです。)。
暗黙のアニメーションでググッてみたところ、appleのpdfで意外に簡単に解除できることが分かりました。
「レイヤにremoveAllAnimationsメッセージを送ることによって、レイヤのすべてのアニメーションを停止できます。」
で、自分のコードに反映したのが以下です。
1 2 3 4 |
[layer_min_hand removeAllAnimations];//アニメーションさせない CATransform3D transform_min_hand = CATransform3DIdentity; transform_min_hand = CATransform3DRotate(transform_min_hand, radi_min, 0, 0, 1); layer_min_hand.transform = transform_min_hand; |
例えば、私の場合はレイヤーの暗黙のアニメーションを解除したかったのですが、レイヤーを動かす前に"[動かしたく無い対象 removeAllAnimations];"とするだけでした。
これで、針は意図通りにカチッカチッと動くようになりました。