如何使用 MKMapView.gestureRecognizers 访问特定的 UIGestureRecognizer

How to access a specific UIGestureRecognizer using MKMapView.gestureRecognizers

我在我的 viewDidLoad 方法中添加了一个 UILongPressGestureRecognizer:

var uilpgr = UILongPressGestureRecognizer(target: sMapView, action: "longPressDetected:")
    uilpgr.minimumPressDuration = 1
    sMapView.addGestureRecognizer(uilpgr)

我正试图在我的处理程序中禁用它。这是我唯一的手势识别器,现在我正在尝试:

            var recognizerList = sMapView.gestureRecognizers
            var recognizer = uilpgrList[0] as! UILongPressGestureRecognizer
            recognizer.enabled = false

我收到一个错误:"cannot subscript a value of [AnyObject]? with an index of type 'Int'"

我没有考虑 sMapView.gestureRecognizers 返回的数组是可选的这一事实。

还发现了初始化的bug

当前工作代码:

初始化: var uilpgr = UILongPressGestureRecognizer(目标:自我,动作:"longPressDetected:") uilpgr.minimumPressDuration = 1 sMapView.addGestureRecognizer(uilpgr)

禁用:

var recognizer = sMapView.gestureRecognizers![0] as! UILongPressGestureRecognizer
recognized.enabled = false

启用:

var recognizer = sMapView.gestureRecognizers![0] as! UILongPressGestureRecognizer
recognized.enabled = true