0

刚开始使用核心图形。玩一个简单的按钮和标签。我希望此标签在每次单击按钮时旋转 180 度。它仅在第一次单击时动画(但是,控制台在每次单击时都会写入“DONE”)

- (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");
    }];
}
4

1 回答 1

2

它不起作用的原因是因为在第一次按下按钮时,视图旋转设置为 180 度。在第二个按钮按下时,您再次将旋转设置为 180 度,但由于这与旋转的当前值相同,因此没有任何反应。您真正想要做的是将旋转设置为 180 度 + 当前旋转。您可以通过将当前变换旋转 180 度并进行以下更改来实现此目的。

lblTest.layer.transform = CATransform3DRotate(lblTest.layer.transform, M_PI,0.0,1.0,0.0);
于 2013-04-29T20:30:03.133 回答