使用Core Plot动画饼图切片

时间:2015-06-19 09:42:26

标签: ios core-plot

我正在使用Core Plot创建一个饼图。我需要为它添加动画,以便切片从0度增加到360度。我使用以下方法来制作动画:

-(void)animatePlot:(CPTPlot *)pPlot
          animated:(BOOL)bAnimated
{
  [[CPTAnimation sharedInstance] removeAllAnimationOperations];

    if (bAnimated) {

        CPTPieChart *pPieChart = (CPTPieChart *)pPlot;
        [CPTAnimation animate:pPieChart
                     property:@"startAngle"
                         from:0
                           to:M_PI*2
                     duration:5];

    }

有两个问题: 饼图的最后一个切片有时会完全动画。因此,在动画结束后,我得到一个不完整的切片。 2.切片的数据标签表示实际位于饼直径(相隔180度)另一端的值

如何摆脱上述问题并正确制作饼图动画?我不希望整个饼图旋转。我只需要切片从0增长到各自的大小。

第二次编辑

我弄明白了这个问题。现在使用以下代码:

CPTPieChart *pPieChart = (CPTPieChart *)pPlot;

        pPieChart.startAngle = M_PI;

        [CPTAnimation animate:pPieChart
                     property:@"endAngle"
                         from:-M_PI
                           to:M_PI
                     duration:0.5];

该图表从180度开始动画。这解决了数据标签问题。但是我仍然得到第一个问题,即最后一个切片没有完全动画。我注意到动画持续时间很短时更明显。以下是截图。这是动画停止的地方:

enter image description here

1 个答案:

答案 0 :(得分:0)

要使饼图增长,请为endAngle设置动画。

我在 Plot Gallery 示例应用中尝试了此动画,但我没有看到标签出现任何问题。你能发一张照片吗?