0

CALayer を回転させようとしています。まず、-30 度回転させて、左に回転させます。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-30));
[UIView commitAnimations];

ここで、回転を完了させ、左から別の回転を実行させたいのですが、最短経路をたどります。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
self.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-30));
[UIView commitAnimations];

回転方向を強制するにはどうすればよいですか?

4

1 に答える 1

3

を使用しCABasicAnimationて、特定の角度に回転できます。

CABasicAnimation *rotate = 
    [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotate.toValue = @(M_PI*2); 
rotate.duration = 1.0; // your duration

[yourView.layer addAnimation:rotate 
                      forKey:@"myRotationAnimation"];

アニメーションの外観を構成するために使用できるパラメーターが他にもいくつかあります (タイミング関数など)。

デフォルトでは、アニメーションは完了後に自動的に削除されるため、終了値に更新する必要があります (これは、すべての「どのように回転させるか ...」の質問で何度も説明されています。

また、Core Animation も必要QuartzCore.frameworkです (この例では CALayer と CABasicAnimation)。

于 2013-04-28T07:45:13.030 に答える