【发布时间】:2011-03-10 14:42:58
【问题描述】:
我正在绘制一个饼图,点击时,我将它旋转到下一个饼图
CGContextRotateCTM(context, degreesToRadians(mAngle))。
有没有办法为这个过渡设置动画?可以发个例子吗?
【问题讨论】:
标签: iphone animation core-animation core-graphics quartz-graphics
我正在绘制一个饼图,点击时,我将它旋转到下一个饼图
CGContextRotateCTM(context, degreesToRadians(mAngle))。
有没有办法为这个过渡设置动画?可以发个例子吗?
【问题讨论】:
标签: iphone animation core-animation core-graphics quartz-graphics
我认为,如果您真的想仅更改绘图代码来旋转图表,则需要创建一个计时器并在其方法中更改旋转角度,并在那里重绘视图。
如果可能的话,我会用图表本身旋转视图,而不是在绘图代码中应用旋转——无论是使用 UIView 动画还是使用 CALayer 动画——它们都非常简单并且提供了更大的灵活性。例如
[UIView animateWithDuration:1.0f
animations:^{
view.transform = CGAffineTransformMakeRotation(mAngle);
}];
将在 1 秒内使用动画在 mAngle 上旋转您的视图(该方法从 iOS4 开始可用)。此外,如果您想将视图旋转 360 度或更多,则需要使用 CALayer 动画(详情请查看this question)。
此外,使用标准动画很可能不会让您的视图重绘,因此会更高效。
【讨论】: