我正在尝试添加 UIPanGestureRecognizer
到我的 mapView
但我不明白为什么 action 方法永远不会被调用 ( swift 2.1)。
import UIKit
import MapKit
class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate, UIGestureRecognizerDelegate
{
override func viewDidLoad()
{
super.viewDidLoad()
// other stuff...
let gestureRecognizer = UIPanGestureRecognizer(target: self, action: "didDragMap:")
gestureRecognizer.delegate = self
self.mapView.addGestureRecognizer(gestureRecognizer)
}
func didDragMap(sender: UIPanGestureRecognizer)
{
// never enter here
}
}
这里有什么问题?我有相同的 Objective-C 对应,它的工作。
最佳答案
由于 MKMapView 已经处理了它自己的手势,因此您需要启用它来监听您的手势。
实现 shouldRecognizeSimultaneouslyWithGestureRecognizer
并像这样返回 true:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
Source
关于ios - UIPanGestureRecognizer 从不调用 Action 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36165235/