如何在ios-chart的PieChart中更改所选切片的高亮轮廓

时间:2015-07-18 22:06:00

标签: ios-charts

ios-charts是我最近使用的很酷的库。

这是预期的突出显示切片:

enter image description here

这是我目前的突出效果:

enter image description here

不同之处在于突出显示的效果比我预期的要大得多。

我想知道我可以使用哪种方法来调整高亮效果?

2 个答案:

答案 0 :(得分:6)

感谢@ 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

答案 1 :(得分: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

相关问题