Получите координаты в onLongPressGesture на карте.

Мой вопрос очень похож на этот: Зафиксировать местоположение touchDown onLongPressGesture в SwiftUI?

Однако есть одна существенная особенность: я хочу получить координаты.onLongPressGestureна . В этом случае решение исходного вопроса имеет две основные проблемы:

  • Это нарушает настройки по умолчаниюMapфункция перетаскивания.

  • Он фиксирует координату при «отпускании», а не при «нажатии и удержании в течение X секунд». Я хочу получить координаты после нажатия и удержания настроенного количества секунд (minimumDurationпараметр), но до поднятия пальца.

Я пробовал разные комбинации жестов в разном порядке:.onTapGesture,DragGestureи т. д., но объединить их работоспособным способом не удалось (либо перетаскивание карты нарушается, либо координата определяется при поднятии пальца, либо какие-то другие проблемы).

Еще я пытался создать прозрачный оверлей и применить к нему какие-то жесты, но тоже не получилось...

Я также видел этот вопрос (и ответ), но он не помогает, потому что не фиксирует координаты (и, IIRC, он также нарушил функцию перетаскивания): У кого-нибудь работает SwiftUI+MapKit+LongPress?

1 ответ

Исходя из того, что ответов здесь нет (как и на форуме разработчиков Apple) и ни один из моих дальнейших экспериментов не увенчался успехом, я предполагаю, что добиться желаемого поведения с помощьюMapкомпонент. Мне пришлось вернуться к комбинацииMKMapViewиUILongPressGestureRecognizer. Более подробную информацию можно найти в ответах на этот вопрос: Добавление аннотации к виду карты при длительном нажатии в Swift.

Другие вопросы по тегам