2015-08-14 2 views
0

добавить UILongPressGestureRecognizer в моем методе viewDidLoad:Как получить доступ к определенной UIGestureRecognizer с помощью MKMapView.gestureRecognizers

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 

Я получаю сообщение об ошибке: «не может индексировать значение [AnyObject] с индексом типа" Int»

+0

Я знаю в obj c, вы хотите знать в Obj c? – Mehul

+0

Это должно быть полезно! –

+0

Поскольку это ваш собственный распознаватель жестов, объявите его как локальное свойство и получите к нему прямой доступ, не перебирая список всех других жестов на карте. – lukya

ответ

0

Я не учитывал тот факт, что массив, возвращаемый sMapView.gestureRecognizers, был необязательным.

Также найдена ошибка при инициализации.

тока, рабочий код:

INIT: вар 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 
Смежные вопросы