2015-07-18 3 views

Répondre

1

Vous pouvez modifier vous-même:

En PieChartRenderer.swift:

public override func drawHighlighted(#context: CGContext, indices: [ChartHighlight]) 
{ 
    if (_chart.data === nil) 
    { 
     return 
    } 

    CGContextSaveGState(context) 

    var rotationAngle = _chart.rotationAngle 
    var angle = CGFloat(0.0) 

    var drawAngles = _chart.drawAngles 
    var absoluteAngles = _chart.absoluteAngles 

    var innerRadius = drawHoleEnabled && holeTransparent ? _chart.radius * holeRadiusPercent : 0.0 
... 
} 

Vous pouvez modifier innerRadius ou holeTransparent tout ce que vous voulez essayer.

5

Merci pour la réponse de @ Wingzero.

Cependant, je ne veux pas changer le code source ou remplacer certaines méthodes.

Enfin, j'ai trouvé la propriété pour l'effet de surbrillance de la tranche sélectionnée. C'est une propriété de @interface PieChartDataSet : ChartDataSet.

/// indicates the selection distance of a pie slice 
@property (nonatomic) CGFloat selectionShift; 

En définissant comme dataSet.selectionShift = 7.0;, il fonctionne pour ma conception.

Ici l'objet attache de dataSet:

PieChartDataSet *dataSet = [[PieChartDataSet alloc] initWithYVals:yVals1 label:NULL]; 
dataSet.selectionShift = 7.0; 
PieChartData *data = [[PieChartData alloc] initWithXVals:nil dataSet:dataSet]; 
self.pieChartView.data = data; 

C'est l'effet ce que j'attendais.

enter image description here

+0

bonne prise! J'ai oublié de regarder PieChartDataSet si utile. Mais j'ai fait la personnalisation donc je sous-classe souvent le graphique et le contourne. – Wingzero