ios - UIPanGestureRecognizer 从不调用 Action 方法

原文 标签 ios swift mapkit action uipangesturerecognizer

我正在尝试添加 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/

相关文章:

ios - 加载 WebView 时 Swift 中的 EXC_BAD_INSTRUCTION

ios - MKDirections未在iOS中的 map 上显示路线

ios - 在 MapKit 中的多边形中心添加标签

ios - 有没有办法使用 XCTest 对 Touch Id 进行单元测试?

ios - 如何在ios核心数据中设计两个具有聚合关系的表?

swift - Swift 中函数声明与定义的分离

ios - 快速检查 textview 是否为空

ios - 将 MKLocalSearch 限制为一个区域

ios - 如何访问在 iOS 中动态传递给子 viewController 的参数?

ios - NSTimer内存泄漏?