为什么这不是动画?

时间:2015-04-28 23:10:01

标签: ios objective-c animation core-plot pie-chart

我在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/

我不确定我做错了什么。

2 个答案:

答案 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让我走上了正确的道路!