ios图表中的圆形条形图

问题描述 投票:7回答:4

我使用BarChartViewios-Charts创建了一个BarChart,但我无法弄清楚如何在圆柱上添加圆角。

这是我正在使用的代码:

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 bar

这就是我需要的:

rounded bar

ios swift ios-charts
4个回答
13
投票

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

然后有堆叠和未堆叠的条形码的qazxsw poi,选择你的情况并删除:

if-statement

而不是它添加:

context.fill(barRect)

0
投票

似乎目前不支持此功能,但let bezierPath = UIBezierPath(roundedRect: barRect, cornerRadius: %YOUR_CORNER_RADIUS%) context.addPath(bezierPath.cgPath) context.drawPath(using: .fill) 。同时看看is under development


0
投票

使用UIView的圆角条形图:

this pull request

这里,BAR_WIDTH_CONSTANT是每个条的宽度。


0
投票

如果您不想等待let frame = CGRect(x: xPos, y: yPos, width: BAR_WIDTH_CONSTANT, height: barHeight) let bar = UIView(frame: frame) bar.layer.cornerRadius = BAR_WIDTH_CONSTANT < barHeight ? BAR_WIDTH_CONSTANT / 2 : barHeight / 2 bar.layer.masksToBounds = true self.barView.addSubview(bar) 在原始库中合并,那么我可以在几个项目中使用自己的解决方案。

这个工作示例基于我在互联网上收集的所有先前数据。它在今天起作用,但在使用之前必须采取一些预防措施。

为了使它工作,你所要做的就是替换整个this pull request文件BarChartRenderer.swift

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

最后,要控制图表的角半径,只需将with this one更改为您想要的任何值。

这是我得到的最终结果:

barCornerRadius = CGFloat(5.0)

更换文件后,请确保清理Xcode的构建文件夹,然后重新编译项目以使更改立即生效。

© www.soinside.com 2019 - 2024. All rights reserved.