Теоретически вы можете добавить распознаватель жестов длинным нажатием в MapView, а затем проверить состояние распознавателя в методе выбора для аннотации. Например, если вы хотите, чтобы что-то произошло во время выполнения жеста, вы можете проверить, что состояние распознавателя не завершено или отменено.
Например:
if recognizer.state == .ended || recognizer.state == .cancelled || recognizer.state == .failed {
// this would cover the gesture no longer being in progress
} else if recognizer.state == .began {
// handle the gesture beginning
}
Я всегда добавляю распознаватель жестов в раскадровку, просто перетаскивая его на карту, затем создавая розетки / действия. Если вы хотите сделать это программно, вы можете прочитать больше здесь .