我正在使用核心圖創建餅圖。我需要爲其添加動畫,以便切片從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度動畫。這解決了數據標籤問題。不過,我仍然遇到第一個問題,即最後一個切片沒有完全生成動畫。我注意到,當動畫持續時間很短時,這一點更爲明顯。以下是截圖。這裏是動畫停止其中:
問題修復...必須將CPTAnimationOperation的委託設置爲self。然後在animationDIdFinish方法中,設置餅圖的結束角度。現在餅圖充分動畫。 – StudentX