iOS:两次animation项目

刚开始与核心graphics。 玩一个简单的button和标签。 我想要这个标签旋转180度每按一下button。 它只会在第一次点击时产生animation效果(然而,每次点击后控制台都会写入“完成”)

- (IBAction)btnTest:(id)sender { [UIView animateWithDuration:1 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{ lblTest.layer.transform = CATransform3DMakeRotation(M_PI,0.0,1.0,0.0); }completion:^(BOOL finished) { if(finished) NSLog(@"DONE"); }]; } 

它不工作的原因是因为在第一个button按下,视图旋转设置为180度。 在第二个button上,按下旋转angular度设置为180度,但由于旋转的当前值相同,所以不会有任何反应。 你真正想要做的是将旋转设置为180度+当前旋转。 您可以通过将当前变换旋转180度,并进行以下更改来实现此目的。

 lblTest.layer.transform = CATransform3DRotate(lblTest.layer.transform, M_PI,0.0,1.0,0.0);