2017-02-03 116 views
0

我有代碼來對角地向下移動。旋轉NSButton不起作用

CABasicAnimation *rightAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"]; 
[rightAnimation setToValue:[NSNumber numberWithFloat:160]]; 
[rightAnimation setBeginTime:0.0]; 
[rightAnimation setDuration:0.4]; 


CABasicAnimation *fall = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"]; 
[fall setToValue:[NSNumber numberWithFloat:-20]]; 
[fall setBeginTime:0.1]; 
[fall setDuration:0.3]; 

//DOESN'T WORK 
CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.translation.z"]; 
[rotate setToValue:[NSNumber numberWithFloat:DEGREES_RADIANS(30)]]; 
[rotate setBeginTime:0.0]; 
[rotate setDuration:0.4]; 

CAAnimationGroup *group = [CAAnimationGroup animation]; 
[group setDuration:0.4]; 
[group setAnimations:[NSArray arrayWithObjects:rightAnimation, fall, rotate, nil]]; 

[submitButton.layer addAnimation:rotate forKey:nil]; 

它完美的工作,除了我也想按鈕旋轉30度。但是出於一些奇怪的原因,這不會發生,怎麼回事?

回答

1

改變這一行:

CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.translation.z"]; 

這樣:

CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 

這應該解決您的問題。

0

我從來沒有見過「DEGREES_RADIANS」,我相信你實際上可能是指「度數到放射性」。如果是的話,下面的代碼就足夠了:

rotationAnimation.toValue = [NSNumber numberWithFloat:degreesToRadians(30)];