gpt4 book ai didi

ios - 当用户点击图表时添加点 - 'LineChartView' (iOS-Charts)

转载 作者:行者123 更新时间:2023-11-28 15:36:06 25 4
gpt4 key购买 nike

有一种方法可以实现这样一种方法,当用户点击图表时,我可以知道要插入数组中的 x-y 值吗?

我正在尝试使用:

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

但是这种方法显示了我已经拥有的最近点。

如果我使用:

@IBOutlet var chart: LineChartView! 

let tap = UITapGestureRecognizer(target: self, action: #selector(self.longTouch(_:)))
self.chartView.addGestureRecognizer(tap)

func touch(_ sender: UIGestureRecognizer) {
let touchPoint = sender.location(in: self.chart)
}

“touchPoint”返回绝对 View 的 x-y,与图表无关。

有人可以帮助我吗?谢谢!

最佳答案

我已经决定在 View 中添加一个手势识别器:

// Gesture Recognizer to add a new value
func addGesture() {
let gesture = UILongPressGestureRecognizer(target: self, action: #selector(gestureRecognizerShouldBegin(_:)))
gesture.minimumPressDuration = 0.3
_chartView?.addGestureRecognizer(gesture)
}

在手势方法中,我使用了继承于 LineChartViewvalueForTouchPoint(point: _)

func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {

if gestureRecognizer.state == .began {

// Recognize the location in the view
let touchLocation = gestureRecognizer.location(in: self._chartView)
// The 'x-y' value where user touch the view
let touchedPoint: CGPoint? = self._chartView?.valueForTouchPoint(point: touchLocation, axis: .right)

guard let point = touchedPoint else { return false }

// save the value...

return true
}

而且,如果我缩放或平移图表,该方法会返回正确的值 x-y 值。

希望这会对某人有所帮助!

关于ios - 当用户点击图表时添加点 - 'LineChartView' (iOS-Charts),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44245781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com