Rounded bars in ios Charts

亡梦爱人 提交于 2019-12-21 04:34:19

问题


I've created a BarChart using BarChartView from ios-Charts but I can't figure out howto add rounded corners to bars.

This is the code that I'm using:

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)

I've looked for a property like set1.barCornerRadius to set, but I didn't find anything.

Here is what I have:

Here is what I need:


回答1:


In BarChartRenderer.swift you can to modify open func drawDataSet(context: CGContext, dataSet: IBarChartDataSet, index: Int)

Then there's if-statement for stacked and nonstacked bars, choose your case and remove:

context.fill(barRect)

and instead of it add:

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

context.drawPath(using: .fill)



回答2:


If you don't want to wait for this pull request to be merged in the original library, there's a working solution that I use myself in a couple of projects.

This working example is based on all of the previous data I've collected all over the Internet. It works as of today but you have to do a few precautions before using it.

To make it work, all you have to do is replace the whole BarChartRenderer.swift file with this one.

First, have a backup copy of the original file. Then, make sure you replace the file every time you update your Charts CocoaPod, otherwise, the file will be overwritten.

In the end, to control the corner radius of your chart, just change the barCornerRadius = CGFloat(5.0) to whatever you want to.

Here's the final result I've got:

After you've replaced the file, make sure to clean your Xcode's build folder and then recompile your project for changes to take effect immediately.




回答3:


Seems that this feature is currently not supported but is under development. In the meanwhile take a look at this pull request.



来源:https://stackoverflow.com/questions/37920237/rounded-bars-in-ios-charts

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!