2015-06-19 78 views
2

我正在使用核心圖創建餅圖。我需要爲其添加動畫,以便切片從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個問題: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度動畫。這解決了數據標籤問題。不過,我仍然遇到第一個問題,即最後一個切片沒有完全生成動畫。我注意到,當動畫持續時間很短時,這一點更爲明顯。以下是截圖。這裏是動畫停止其中:

enter image description here

+0

問題修復...必須將CPTAnimationOperation的委託設置爲self。然後在animationDIdFinish方法中,設置餅圖的結束角度。現在餅圖充分動畫。 – StudentX

回答

0

要使餅圖增長,動畫endAngle

我試過這個動畫Plot Gallery示例應用程序,我沒有看到任何問題與標籤。你可以張貼圖片嗎?

+0

我只是動畫了endAngle屬性。在這種情況下,圖表會減少到0 ..應該在一分鐘內發佈圖像。 – StudentX