UIPanGestureRecognizer 从不调用操作方法
UIPanGestureRecognizer never call action method
我正在尝试将 UIPanGestureRecognizer
添加到我的 mapView
但我不明白为什么 从未调用操作方法 (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
和 return true:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
我正在尝试将 UIPanGestureRecognizer
添加到我的 mapView
但我不明白为什么 从未调用操作方法 (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
和 return true:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}