iOS 版本的 MPAndroidChart 框架中是否有处理手势结束(修饰)的方法?
Is there a way to handle gesture end (touch up) in iOS version of MPAndroidChart framework?
在 MPAndroidChart 框架的 Android 版本中,有一个名为 onChartGestureEnd
的方法会在触摸时触发(例如,当您完成拖动折线图)。
此框架的 iOS 版本 (Charts) 中是否有与此方法类似的方法。如果不是,那么我如何在不损坏图表当前拖动行为的情况下处理拖动结束(可能使用 UIPanGestureRecognizer
)?
可能的解决方案之一是向图表添加 UIPanGestureRecognizer
并在手势完成时添加您需要的任何行为:
@IBAction func didDragChart(_ sender: UIPanGestureRecognizer) {
switch sender.state {
case .ended, .cancelled:
// Whatever you want to do when finished dragging.
default:
break
}
}
但是这还不够,因为此框架中的图表已经具有默认的拖动行为。要允许多个相同类型的手势(在我们的例子中是拖动),您可以创建图表的新子类并覆盖此方法:
override func gestureRecognizer(_ gestureRecognizer: NSUIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: NSUIGestureRecognizer) -> Bool {
return true
}
现在,通过拖动滚动图表(默认行为)和您的手势识别器将一起工作。
在 MPAndroidChart 框架的 Android 版本中,有一个名为 onChartGestureEnd
的方法会在触摸时触发(例如,当您完成拖动折线图)。
此框架的 iOS 版本 (Charts) 中是否有与此方法类似的方法。如果不是,那么我如何在不损坏图表当前拖动行为的情况下处理拖动结束(可能使用 UIPanGestureRecognizer
)?
可能的解决方案之一是向图表添加 UIPanGestureRecognizer
并在手势完成时添加您需要的任何行为:
@IBAction func didDragChart(_ sender: UIPanGestureRecognizer) {
switch sender.state {
case .ended, .cancelled:
// Whatever you want to do when finished dragging.
default:
break
}
}
但是这还不够,因为此框架中的图表已经具有默认的拖动行为。要允许多个相同类型的手势(在我们的例子中是拖动),您可以创建图表的新子类并覆盖此方法:
override func gestureRecognizer(_ gestureRecognizer: NSUIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: NSUIGestureRecognizer) -> Bool {
return true
}
现在,通过拖动滚动图表(默认行为)和您的手势识别器将一起工作。