Жест панорамирования не пересылает касание в Mapbox MGLMapView

ios swift mapbox uipangesturerecognizer

310 просмотра

1 ответ

90 Репутация автора

Я пытаюсь достичь чего-то очень простого с MGLMapView из SDK Mapbox iOS. Я рендерил MGLMapView с включенной прокруткой, чтобы можно было перемещать представление по жесту панорамирования; Я хотел бы определить, был ли вид перемещен, поэтому я прикрепил к этому представлению распознаватель жестов панорамирования.

Обратите внимание, что я использую конструктор интерфейса для этого, как вы можете видеть на скриншоте ниже.

скриншот конструктора интерфейса

Я связал распознаватель жестов с IBAction, который действительно срабатывает каждый раз, когда кто-то пытается переместить вид на карту. Однако представление не перемещается, то есть событие касания больше не пересылается в MGLMapView. Конечно, я снял флажок «Отмена касаний в поле зрения» моего устройства распознавания жестов панорамирования. Просто чтобы быть уверенным, что я также связал распознаватель жестов панорамирования с IBOublet в своем коде, чтобы я мог установить для его элемента cancellsTouchesInView значение false, но это ничего не меняет.

Я попытался добавить распознаватель жестов касания (2 касания) аналогичным образом, и он работает нормально, то есть связанный IBAction запускается, и касание перенаправляется в представление карты (представление карты увеличивается при двойном касании).

Что я упустил здесь с помощью распознавателя жестов панорамирования?

Спасибо большое за вашу помощь.

Автор: Tanguy A. Источник Размещён: 19.07.2016 06:28

Ответы (1)


1 плюс

90 Репутация автора

Поэтому для достижения цели я использовал другой подход: вместо того, чтобы прикреплять новый распознаватель жестов панорамирования к виду карты, я присоединяю новую цель к существующему распознавателю жестов панорамирования.

for gestureRecognizer in self.mapView.gestureRecognizers! {
    if let _ = gestureRecognizer as? UIPanGestureRecognizer {
        gestureRecognizer.addTarget(self, action: #selector(self.panOnMap))
        break
    }
}

Затем вызывается как панорамирование по умолчанию, так и мой метод panOnMap.

Я все еще не полностью удовлетворен этим решением, так как оно больше похоже на взлом. Кроме того, я заметил, что это два устройства распознавания жестов панорамирования, прикрепленных к представлению карты, и я не уверен, на какой из них мне следует ориентироваться.

Автор: Tanguy A. Размещён: 28.08.2016 12:33
Вопросы из категории :
32x32