Frage

Ich verwende eine Kernhandlung in einem meiner iPhone -Projekte. Ist es möglich, die Farbe für eine ausgewählte Scheibe in einem Kreisdiagramm (unter Verwendung von CppiechartDataSource, CppiechartDelegate) zu ändern?

War es hilfreich?

Lösung

Implementieren Sie die folgende Methode in Ihrer Kreisdiagramm -Datenquelle:

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

CPFill kann eine Farbe, ein Bild oder eine Gradientin sein.

Andere Tipps

In Ihrer .h -Datei

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

in Ihrer .m -Datei

-(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;
}

Es wird Piechart -Slice -Farbe ändern. Vielen Dank

Ich habe dies meiner .m -Datei hinzugefügt (die die Datenquellendatei für das Kreisdiagramm ist). Die Farben sind hässlich - haben sie nur verwendet, um zu testen, da sie sich wirklich von den Standardeinstellungen unterscheiden. Und es gibt nur drei Scheiben in meinem Diagramm, daher die hartcodierten 3 Farben. Ich fand die Kernplot -Dokumentation für all das hilfreich. Hier ist der Link zur Dokumentation der FillwithColor -Methode. Hinweis: Sie müssen CPT jetzt als Präfix verwenden, nicht als alter 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;
 }

Entschuldigung, wenn ich den Antworteintrag durcheinander gebracht habe - dies ist mein erster Beitrag auf Stackoverflow

Schnelle Version:

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());
    }

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top