【问题标题】:Animate Pie Chart slices using Core Plot使用 Core Plot 动画饼图切片
【发布时间】:2015-06-19 09:42:25
【问题描述】:

我正在使用 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];

    }

有两个问题: 1. 饼图的最后一部分有时会完全动画化。所以动画结束后我得到一个不完整的切片。 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 度开始动画。这解决了数据标签问题。但是,我仍然遇到最后一个切片没有完全动画化的第一个问题。我注意到动画持续时间很短时会更加明显。以下是截图。这是动画停止的地方:

【问题讨论】:

  • 问题已修复...必须将 CPTAnimationOperation 的委托设置为 self。然后在 animationDIdFinish 方法中,设置饼图的结束角度。现在饼图完全动画化了。

标签: ios core-plot


【解决方案1】:

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

我在 Plot Gallery 示例应用程序中尝试了这个动画,我没有发现标签有任何问题。可以发张照片吗?

【讨论】:

  • 我刚刚为 endAngle 属性设置了动画。在这种情况下,图表只是减少到 0.. 将在一分钟内发布图像。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多