关于Swift:iOS图表中的圆条

Rounded bars in ios Charts

我已经使用ios-Charts中的BarChartView创建了条形图,但是我不知道如何在条形图上添加圆角。

这是我正在使用的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
let barChart: BarChartView
//...
var xVals = [String]()
var yVals = [BarChartDataEntry]()
//...

let set1 = BarChartDataSet(yVals: yVals, label:"Label")

set1.drawValuesEnabled = false
set1.highlightLineWidth = 3
set1.colors = [UIColor.whiteColor()]

barChart.data = BarChartData(xVals: xVals, dataSet: set1)

我一直在寻找要设置的属性,例如set1.barCornerRadius,但没有找到任何内容。

这是我所拥有的:

squared


BarChartRenderer.swift中,您可以修改open func drawDataSet(context: CGContext, dataSet: IBarChartDataSet, index: Int)

然后有if-statement表示堆叠和非堆叠的钢筋,选择您的箱子并移除:

1
context.fill(barRect)

,而不是添加:

1
2
3
4
let bezierPath = UIBezierPath(roundedRect: barRect, cornerRadius: %YOUR_CORNER_RADIUS%)
context.addPath(bezierPath.cgPath)

context.drawPath(using: .fill)


如果您不想等待这个pull请求在原始库中被合并,那么有一个可行的解决方案可供我在几个项目中使用。

该工作示例基于我在Internet上收集的所有先前数据。它从今天起就可以使用,但是在使用它之前,您必须采取一些预防措施。

要使其正常工作,您要做的就是用此文件替换整个BarChartRenderer.swift文件。

首先,拥有原始文件的备份副本。然后,确保每次更新Charts CocoaPod时都替换文件,否则,该文件将被覆盖。

最后,要控制图表的拐角半径,只需将barCornerRadius = CGFloat(5.0)更改为所需的值即可。

这是我得到的最终结果:

enter

似乎当前不支持此功能,但正在开发中。同时,查看此拉取请求。