Ios iso图表圆角条形图
在条形图视图中是否有设置来启用条形图的圆角 我想达到与另一个库类似的效果Ios iso图表圆角条形图,ios,swift,ios-charts,Ios,Swift,Ios Charts,在条形图视图中是否有设置来启用条形图的圆角 我想达到与另一个库类似的效果 我制作了一系列ios图表来大致实现这一点: 这是一个在swift中使用UIView的圆形条形图示例。在.swift文件中,添加以下代码 @IBOutlet weak var barView: UIView! var BAR_WIDTH_CONSTANT: CGFloat = 9 var BAR_DISTANCE: CGFloat = 14 // distance between your bars var BAR_MAX
我制作了一系列ios图表来大致实现这一点:
这是一个在swift中使用UIView的圆形条形图示例。在.swift文件中,添加以下代码
@IBOutlet weak var barView: UIView!
var BAR_WIDTH_CONSTANT: CGFloat = 9
var BAR_DISTANCE: CGFloat = 14 // distance between your bars
var BAR_MAX_HEIGHT: CGFloat = 50 // maximum height of a bar
let MAX_VALUE: CGFloat = 10 //maximum value of a bar
let MIN_VALUE: CGFloat = 0 // minimum value of a bar
然后在viewDidLoad()中添加以下代码
var xPos:CGFloat=0
变量yPos:CGFloat=0
让值:[Int]=[1,2,3,4,5,6,7]//条形图的值
对于0中的i..CGFloat{
设barHeight=(maxHeight*height)/(maxValue-minValue)
返回杆高度
}
希望能有所帮助。现在就开始测试吧。
@IBOutlet weak var barView: UIView!
var BAR_WIDTH_CONSTANT: CGFloat = 9
var BAR_DISTANCE: CGFloat = 14 // distance between your bars
var BAR_MAX_HEIGHT: CGFloat = 50 // maximum height of a bar
let MAX_VALUE: CGFloat = 10 //maximum value of a bar
let MIN_VALUE: CGFloat = 0 // minimum value of a bar
var xPos: CGFloat = 0
var yPos: CGFloat = 0
let values: [Int] = [1, 2, 3, 4, 5, 6, 7] //values of a Bar chart
for i in 0..< values.count {
// draw bar
let barHeight = getBarHeight(height: CGFloat(values[i]), maxHeight: BAR_MAX_HEIGHT, maxValue: MAX_VALUE, minValue: MIN_VALUE)
yPos = BAR_MAX_HEIGHT - barHeight
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)
xPos = xPos + BAR_WIDTH_CONSTANT + BAR_DISTANCE
// bar drawing complete
}
func getBarHeight(height: CGFloat, maxHeight: CGFloat, maxValue: CGFloat, minValue: CGFloat) -> CGFloat {
let barHeight = (maxHeight * height ) / (maxValue - minValue)
return barHeight
}