在饼图中应用渐变-iOS图表库

时间:2019-06-05 17:36:00

标签: ios swift charts

我已经在Swift中使用Charts库创建了一个饼图。

当我尝试通过CGColor来制作图表的颜色时,它不接受它。

这是我当前代码的样子:

let colorLV1 = [color.heatWheelOrange, color.heatWheelOrange, color.heatWheelSkyBlue]
let chartDataSetLV1 = setChartDataset(dataEntries: dataEntriesLV1, colorCode: colorLV1, valueTextColor: UIColor.black, fontFormat: fontMedium)
func setChartDataset(dataEntries : [PieChartDataEntry], colorCode : [UIColor], valueTextColor : UIColor, fontFormat : NSUIFont) -> PieChartDataSet {
    let chartDataSet = PieChartDataSet(values: dataEntries, label: "")
    chartDataSet.colors = colorCode
    chartDataSet.sliceSpace = 1
    chartDataSet.selectionShift = 0
    chartDataSet.valueTextColor = valueTextColor
    chartDataSet.valueFont = fontFormat
    return chartDataSet;
}

要显示渐变,我将colorCode : [UIColor]更改为CGColor。但是它会引发错误。

是否可以使用图表库在Swift中将颜色更改为渐变色?

1 个答案:

答案 0 :(得分:0)

如果您还没有https://github.com/viccalexander/Chameleon

,我建议您研究ChameleonFramework

我已经将它与Charts结合使用,以用于条形图上的渐变,但是我认为它可以与饼图类似地工作。使用ChameleonFramework,我的代码看起来像这样;

    let color1 = UIColor(hex: 0x79D3DB)
    let color2 = UIColor(hex: 0x5773D3)

    let gradientColor = UIColor(gradientStyle: UIGradientStyle.topToBottom, withFrame: barChartView.frame, andColors: [color1, color2])

    var gradientColors = Array(repeating: gradientColor, count: 7)

    chartDataSet.colors = gradientColors as! [NSUIColor]

那应该避免您不得不处理UIColor> CGColor转换问题。希望有帮助!