私は電話があります。 touchendで、彼はアニメーションで彼の位置に行きます。CGAffineTransformIdentityで時計回りに反時計回りに
角度が180°未満になるまで時計回りに戻ります。このコードでは問題ありません:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [UIView setAnimationBeginsFromCurrentState:YES]; [UIView beginAnimations:nil context:NULL]; [UIViewsetAnimationDuration:0.5]; wheel.transform = CGAffineTransformIdentity; [UIView commitAnimations]; }
しかし、それ以降は間違っていて、コンプリートターンのために回転し続けます。
私はこのようなアニメーションを作ってみました:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [UIView setAnimationBeginsFromCurrentState:YES]; [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:0.2]; wheel.transform = CGAffineTransformRotate(wheel.transform, degreesToRadians(-130)); [UIView commitAnimations]; [self performSelector:@selector(animatewheelViewToCenter) withObject:nil afterDelay:0.3]; } - (void)animatewheelViewToCenter{ [UIView setAnimationBeginsFromCurrentState:YES]; [UIView beginAnimations:nil context:NULL]; [UIViewsetAnimationDuration:0.3]; wheel.transform = CGAffineTransformIdentity; [UIView commitAnimations]; }
それは動作しますが、アニメーションは流体ではありません。変更が表示されます。
これは正しく、この目的のために実行している方法が間違っています。アニメーションは、最短パスをインデントに戻して回転させているため、問題が終了します。 – Daniel
Thx "cadran"をすべて "wheel"に変更するコードを編集します。しかし、あなたのコードは、アニメーションに至るまでに時間がかかるので、私を助けます。 しかし、アニメーションはまだ流動的ではありません。 – Rufilix