Задать вопрос
@yadaby

IOS. YandexMapsMobile. Как обрабатывать жесты на карте с UIGestureRecognizer?

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

class MapViewController {
    // Map
    private let mapView = YMKMapView(frame: .zero)...


...
let tapInterceptor = WildCardGestureRecognizer(target: nil, action: nil)
tapInterceptor.gestureDelegate = self
mapView.addGestureRecognizer(tapInterceptor)
...


extension MapViewController: WildCardGestureDelegate {
    func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent) {
        output.touchesBegan()
    }

    func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent) {
    func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent) {
}


public class WildCardGestureRecognizer: UIGestureRecognizer {
    public var gestureDelegate: WildCardGestureDelegate!

    override public init(target: Any?, action: Selector?) {
        super.init(target: target, action: action)
        cancelsTouchesInView = false
    }

    override public func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent) {
        super.touchesBegan(touches, with: event)
        gestureDelegate.touchesBegan(touches, with: event)
    }
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы