2015-07-18 92 views

回答

1

你可以改變自己:

在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 
... 
} 

您可以更改innerRadiusholeTransparent任何你想嘗試一下。

5

感謝@ Wingzero的回答。

但是,我不想更改源代碼或重寫它的一些方法。

最後,我找到了選定切片的高光效果屬性。 這是@interface PieChartDataSet : ChartDataSet的財產。

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

通過將其設置爲dataSet.selectionShift = 7.0;,它適用於我的設計。

這裏重視的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; 

這是我所期望的效果。

enter image description here

+0

好抓!如果有用的話,我忘了看看PieChartDataSet。但是我已經完成了定製,所以我經常對圖表進行子類化並覆蓋它。 – Wingzero