UILongPressGestureRecognizer отсутствует UIGestureRecognizerStateBegan состояние! - PullRequest
0 голосов
/ 27 июля 2010

, поэтому я реализовал распознаватель жестов длинным нажатием одним пальцем, но в распознавателе всегда, по-видимому, отсутствует состояние UIGestureRecognizerStateBegan ... Если я долго жму без перемещения и подъема пальца, получаю отладочное сообщение StateEnded.Если я долго нажимаю и немного двигаю палец, затем поднимаю, я получаю отладочные сообщения StateChanged и StateEnded.Но я никогда не вижу StateBegan.

Нет этой проблемы с UIPanGestureRecognizer - Пан получает все правильные состояния жестов из Began-> Changed-> Ended.

- (void)handleLongPress:(UILongPressGestureRecognizer *)recognizer {
    CGPoint location = [recognizer locationInView:self];

    switch (recognizer.state) {
        case UIGestureRecognizerStateBegan:
            NSLog(@"!!!!handleLongPress: StateBegan !!!!!");
            break;
        case UIGestureRecognizerStateChanged:
            NSLog(@"!!!!handleLongPress: StateChanged !!!!!");
            break;
        case UIGestureRecognizerStateEnded:
            NSLog(@"!!!!handleLongPress: StateEnded !!!!!");
            break;
        default:
            break;
    }   
}

1 Ответ

1 голос
/ 05 сентября 2011

У меня была похожая проблема, и она была вызвана настройкой UILongPressGestureRecognizer: исходный пример кода, который я использовал, указал числоOfTapsRequired = 1, и мне пришлось быстро нажать и отпустить, а затем долго нажать, чтобы заставить его работать вместо того, чтобы просто постучать и удерживать пару секунд. Когда я удалил numberOfTapsRequired, код теперь вел себя как я ожидал. Надеюсь, это поможет =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...