我在while
项目中实施了corePlot。我有一个饼图,我正在尝试动画。这是我的代码:
xcode
这就是我的尝试:
- (void)configureChart
{
CPTGraph *graph = self.hostView.hostedGraph;
CPTPieChart *pieChart = [[CPTPieChart alloc] init];
pieChart.dataSource = self;
pieChart.delegate = self;
pieChart.pieRadius = (self.hostView.bounds.size.height * 0.7) / 2;
pieChart.startAngle = M_PI_4;
pieChart.sliceDirection = CPTPieDirectionClockwise;
[graph addPlot:pieChart];
当我运行应用程序时,它没有动画。我做错了什么,我该如何解决?
更新1
我尝试了以下内容:
CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotation.removedOnCompletion = YES;
rotation.fromValue = [NSNumber numberWithFloat:0.0f];
rotation.duration = 1.0f;
rotation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
rotation.delegate = self;
[pieChart addAnimation:rotation forKey:@"rotation"];
}
没有达到预期的效果。图表会显示一秒钟,然后消失。
更新2
我正试图获得这种效果:http://jsfiddle.net/ozgr1wfx/
我不确定我做错了什么。
答案 0 :(得分:0)
不要为图层变换设置动画。相反,为起始角度设置动画。否则,任何标签和其他注释都将随图一起旋转。
来自 Plot Gallery 示例应用
[CPTAnimation animate:piePlot
property:@"startAngle"
from:CPTFloat(M_PI_2)
to:CPTFloat(M_PI_4)
duration:0.25];
如评论中所述,角度以弧度给出(pi弧度= 180度)。
答案 1 :(得分:0)
我终于得到了@RoryMcKinnel。
[CPTAnimation animate:pieChart property:@"endAngle" from:pieChart.startAngle + M_PI * 2 to:pieChart.startAngle duration:2.0];
这将为您的饼图设置如下动画:http://jsfiddle.net/ozgr1wfx/。
再次。感谢@RoryMcKinnel让我走上了正确的道路!