Я хотел бы объединить UILongPressGestureRecognizer с UIPanGestureRecognizer.
UIPanGestureRecognizer должен начинаться с длинного нажатия. Есть ли простой способ сделать это? или мне действительно нужно написать свой собственный распознаватель жестов?
Я не похож на главный экран. Вы нажимаете на значок, и через некоторое время значки начинают колебаться. После этого, не отпуская палец от экрана, я могу начать перетаскивать значок под своим пальцем.
Я нашел решение: Этот метод UIGestureRecognizerDelegate делает именно то, что я искал:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
на самом деле вам не нужно комбинировать распознаватели жестов - вы можете сделать это исключительно с помощью UILongPressGestureRecognizer... Вы входите в StateBegan после того, как ваши прикосновения остались в пределах "allowableMovement" для "minimumPressDuration". Вы остаетесь в своем непрерывном longPressGesture до тех пор, пока не поднимаете ни один из пальцев, поэтому вы можете начать двигать пальцами и отслеживать движение через StateChanged.
Жесты длительного нажатия непрерывны.Жест начинается (UIGestureRecognizerStateBegan), когда количество допустимых пальцев (numberOfTouchesRequired) было нажато в течение указанного периода (minimumPressDuration) и касания не выходят за пределы допустимого диапазона движения (allowableMovement). Распознаватель жестов переходит в состояние Change всякий раз, когда перемещается палец, и завершается (UIGestureRecognizerStateEnded), когда любой из пальцев поднимается.