2010-09-02 10 views
10

Używam głównej fabuły w jednym z moich projektów iPhone. Czy jest możliwa zmiana koloru zaznaczonego plasterka na wykresie kołowym (przy użyciu CPPieChartDataSource, CPPieChartDelegate)?Plaster PieChart Core-Plot koloru

Odpowiedz

18

Wdrożenie następujące metody w wykres kołowy źródło danych:

-(CPTFill *)sliceFillForPieChart:(CPTPieChart *)pieChart recordIndex:(NSUInteger)index; 

CPFill może być kolor, wizerunek, czy gradientu.

+0

Chcę zmienić kolor danego wycinka gdy jest zaznaczona. Czy to jest możliwe? – random

+0

Jak dodać obraz? – ravoorinandan

+5

Myślę, że teraz CPTFill i CPTPieChart zamiast .. – TechnocraT

5

W swoim pliku .h

#import "CPTPieChart.h" 
@interface YourViewController : UIViewController<CPTPlotDataSource,CPTPieChartDataSource, CPTPieChartDelegate> 
{ 
} 

w pliku .m

-(CPTFill *)sliceFillForPieChart:(CPTPieChart *)pieChart recordIndex:(NSUInteger)index 
{  
    CPTFill *areaGradientFill ; 

    if (index==0) 
     return areaGradientFill= [CPTFill fillWithColor:[CPTColor orangeColor]]; 
    else if (index==1) 
     return areaGradientFill= [CPTFill fillWithColor:[CPTColor greenColor]]; 
    else if (index==2) 
     return areaGradientFill= [CPTFill fillWithColor:[CPTColor yellowColor]]; 

    return areaGradientFill; 
} 

Zmieni PieChart Kawałek kolor. Dzięki

1

Dodałem to do mojego pliku .m (który jest plikiem źródła danych dla wykresu kołowego). Kolory są brzydkie - wystarczy je przetestować, ponieważ są naprawdę inne niż domyślne. Na mojej karcie są tylko trzy wycinki, stąd zakodowane 3 kolory. Uważałem, że dokumentacja Core Plot jest pomocna w tym wszystkim. Here's the link to the fillWithColor method documentation. UWAGA: Musisz teraz używać CPT jako prefiksu, a nie starego CP.

-(CPTFill *)sliceFillForPieChart:(CPTPieChart *)pieChart recordIndex:(NSUInteger)index; 
    { 
    CPTFill *color; 

    if (index == 0) {  
     color = [CPTFill fillWithColor:[CPTColor purpleColor]]; 

    } else if (index == 1) { 
     color = [CPTFill fillWithColor:[CPTColor blueColor]]; 


    } else { 
     color = [CPTFill fillWithColor:[CPTColor blackColor]]; 
      } 

     return color; 
} 

Przepraszam jeśli zawiedli wpis odpowiedź - to jest mój pierwszy kiedykolwiek pisać na StackOverflow

0

Swift wersję:

func sliceFillForPieChart (pieChart: CPTPieChart, recordIndex: UInt) -> CPTFill { 
    switch (recordIndex+1) { 
    case 1: 
     return CPTFill(color:CPTColor.greenColor()); 
    case 2: 

     return CPTFill(color:CPTColor.redColor()); 
    default: 
     return CPTFill(color:CPTColor.orangeColor()); 
    } 

} 
Powiązane problemy