2

ビューを360度回転させているアプリを開発していますが、360度回転させることができません。180度回転し、回転すると元の位置に戻ります。

animation = [CABasicAnimation animationWithKeyPath:@"transform"];
transform = CATransform3DMakeRotation(3.14f, 1.0f, 1.0f, 1.0f);  
value = [NSValue valueWithCATransform3D:transform]; 
[animation setToValue:value];
[animation setAutoreverses:YES]; 
[animation setDuration:0.9];
[[rotatBall layer] addAnimation:animation forKey:@"180"];  //rotatBall is a view

つまり、前後に回転しているのです。それを継続的に回転させる方法....親切に助けてください...

4

2 に答える 2

1

これは少し注意が必要ですが、ドキュメントで見つけることができます。継続的に回転させるには、最初にアニメーションの繰り返し回数を(math.hで定義)
に設定する必要があります。toValueHUGH_VALF

    CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];

    transform = CATransform3DMakeRotation(1.0f, 1.0f, 1.0f, 1.0f);  
    fromValue = [NSValue valueWithCATransform3D:transform];

    transform = CATransform3DMakeRotation(M_PI*2, 1.0f, 1.0f, 1.0f);  
    toValue = [NSValue valueWithCATransform3D:transform];

    animation.fromValue = fromValue;
    animation.toValue = toValue;
    animation.duration = 0.9f; 
    animation.repeatCount = HUGE_VALF;     // HUGE_VALF is defined in math.h so import it
    [rotatBall.layer addAnimation:animation forKey:@"rotation"];
于 2012-05-31T07:56:55.817 に答える
-1

autoreversesに設定したため、アニメーションは終了後に反転していますYES。それが何をするかautoreversesです。

360度ではなく180度回転している理由については...360度は何ラジアンですか?

于 2012-05-31T06:45:31.690 に答える