Выполнение распознавателя жестов панорамирования ТОЛЬКО после срабатывания распознавателя длительного нажатия
Я пытаюсь реализовать интерфейс перетаскивания для моего UIView с помощью распознавателя жестов панорамирования. Этот фрагмент кода работает, но теперь я хочу выполнять логику перетаскивания только ПОСЛЕ того, как пользователь долго нажимал на мое представление, которое нужно перетаскивать.
Я реализую код в приведенном ниже вопросе. Признайте распознаватели длинных нажатий и панорамирования, но это не совсем то, что я хочу. Любая идея?
2 ответа
Настройте свой контроллер представления в качестве делегата распознавателя панорамирования.
Реализовать gestureRecognizerShouldBegin(_:)
метод. Возвращайте false, пока не сработает распознаватель длинных нажатий жестов.
Нашел еще один пост, название которого немного вводило в заблуждение, поэтому в первый раз я не слишком изучал его. Сочетание длинного нажатия и жеста перетаскивания
Оказывается, UILongPressGesture
уже может помочь мне достичь эффекта перетаскивания, который я хочу. Это означает, что мне не нужно UIPanGesture
совсем. Я просто использовал селектор / обработчик для жеста панорамирования для длинного нажатия. За исключением того, что длинный жим жеста не имеет translation
свойства, поэтому я использую
myView.center = sender.location(in: myView.superview)
добиться того же эффекта перетаскивания.