2017-02-03 73 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)];