Как я могу разрешить несколько жестов при длительном нажатии одновременно на iPad?

В настоящее время у меня есть несколько перетаскиваемых слоев, связанных с UILabels. У меня есть LongPressRecognizer, который улавливает длительное нажатие на ярлыки и перемещает слои с перетаскиваемыми ярлыками.

Я реализовал это, улавливая жесты в цели распознавателя, например:

- (void)handleDragging:(UILongPressGestureRecognizer *)gestureRecognizer
{
    switch ([gestureRecognizer state]) 
    {
        case UIGestureRecognizerStateBegan:
            [self startDragging:gestureRecognizer];
            break;
        case UIGestureRecognizerStateChanged:
            [self doDrag:gestureRecognizer];
            break;
        case UIGestureRecognizerStateEnded:
        case UIGestureRecognizerStateCancelled:
        case UIGestureRecognizerStateFailed:
            [self stopDragging:gestureRecognizer];
            break;
        default:
            break;
    }
}

Тем не менее, я хотел бы позволить пользователю, пока он перетаскивает одну метку, иметь возможность выполнять дополнительное долгое нажатие на другой этикетке, чтобы перетащить несколько этикеток одновременно. Поскольку распознаватель в настоящее время принимает 1 касание (numberOfTouchesRequired = 1), похоже, он не может улавливать дополнительные события. Однако событие gestureRecognizerStateChanged запускается каждый раз, когда на iPad происходит другое событие касания. Однако numberOfTouches на распознавателе по-прежнему показывает одно касание.

Лучшее решение - предоставить каждой метке собственный LongPressRecognizer или есть что-то более элегантное, что я могу сделать с помощью одного распознавателя?

0
задан JKomusin 22 December 2011 в 21:20
поделиться