我正在使用swift charts制作折线图。我在最后一个值上绘制了一个圆,但是我想获取该圆的位置,以便可以向其添加动画。在图表中可以吗?
func setupIntradayLine(data: [ChartDataEntry], percentChange: Double) -> LineChartDataSet {
let line = LineChartDataSet(entries: data)
line.colors = [.white]
line.lineWidth = 2.0
line.mode = .linear
line.drawHorizontalHighlightIndicatorEnabled = false
line.highlightColor = .softWhite
var colors = [UIColor]()
for i in 0..<data.count {
if(i == data.count - 1) {
colors.append(UIColor.white)
} else {
colors.append(UIColor.clear)
}
}
line.circleColors = colors
line.circleHoleRadius = 0
line.circleRadius = 3.5
line.drawCirclesEnabled = true
return line
}
首先:我认为这段代码不仅为最后一个条目,而且为每个条目生成圆圈,因为此行:
line.drawCirclesEnabled = true
现在回答您的问题,ChartViewDelegate中有一个方法,当用户选择一个值时会调用该方法:
func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) {
}
您可以获得圆的位置(或实际上是指向所选值的荧光笔):
let x = highlight.xPx
let y = highlight.yPx
您可以使用它们来使您的自定义视图或与该圈子相关的任何内容居中。