iPhone Quartz CGContextRotateCTM动画

时间:2011-03-10 14:42:59

标签: iphone animation core-animation core-graphics quartz-graphics

我正在画一个饼图,然后点击,我正在用

将它旋转到下一个饼图

CGContextRotateCTM(context, degreesToRadians(mAngle))

有没有办法让这种过渡动画?你能发一个例子吗?

1 个答案:

答案 0 :(得分:0)

我认为如果您真的想要旋转图表只需更改绘图代码,您需要创建一个计时器并在其方法中更改旋转角度,并在那里重新绘制视图。

我不是在绘图代码中应用旋转,而是使用图表本身旋转视图,如果可能的话 - 使用UIView动画或使用CALayer动画 - 它们非常简单并且提供了更大的灵活性。例如

[UIView animateWithDuration:1.0f 
                 animations:^{
                     view.transform = CGAffineTransformMakeRotation(mAngle);
                 }];

将在1秒内通过动画旋转您的mAngle视图(方法从iOS4开始可用)。此外,如果您想将视图旋转360度或更多,则需要使用CALayer动画(有关详细信息,请查看this question)。

同样使用标准动画很可能不会让您的视图重绘,因此效率会更高。