Выполнение распознавателя жестов панорамирования ТОЛЬКО после срабатывания распознавателя длительного нажатия

Я пытаюсь реализовать интерфейс перетаскивания для моего UIView с помощью распознавателя жестов панорамирования. Этот фрагмент кода работает, но теперь я хочу выполнять логику перетаскивания только ПОСЛЕ того, как пользователь долго нажимал на мое представление, которое нужно перетаскивать.

Я реализую код в приведенном ниже вопросе. Признайте распознаватели длинных нажатий и панорамирования, но это не совсем то, что я хочу. Любая идея?

2 ответа

Настройте свой контроллер представления в качестве делегата распознавателя панорамирования.

Реализовать gestureRecognizerShouldBegin(_:) метод. Возвращайте false, пока не сработает распознаватель длинных нажатий жестов.

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

Оказывается, UILongPressGesture уже может помочь мне достичь эффекта перетаскивания, который я хочу. Это означает, что мне не нужно UIPanGesture совсем. Я просто использовал селектор / обработчик для жеста панорамирования для длинного нажатия. За исключением того, что длинный жим жеста не имеет translation свойства, поэтому я использую

myView.center = sender.location(in: myView.superview)

добиться того же эффекта перетаскивания.

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