Получить положение круга на быстрых графиках - PullRequest
0 голосов
/ 13 апреля 2020

Я использую 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
}

1 Ответ

0 голосов
/ 13 апреля 2020

Прежде всего: я думаю, что этот код генерирует круги для каждой записи, а не только для последней записи, из-за этой строки:

line.drawCirclesEnabled = true

Теперь, чтобы ответить на ваш вопрос, в есть метод ChartViewDelegate , который вызывает, когда пользователь выбирает значение:

func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) {

}

, вы можете получить положение окружности (или фактически подсветку, указывающую на выбранное значение):

let x = highlight.xPx
let y = highlight.yPx

вы можете используйте их для центрирования вашего собственного вида или всего, что связано с этим кругом.

...