UIPanGestureRecognizer не переключается в состояние «Конец» или «Отмена», если пользователь сдвинул оси x и y в отрицательном направлении

У меня небольшая проблема с UIPanGestureRecognizer. Распознаватель не сообщает о UIGestureRecognizerStateEnded состояние, если пользователь переместился в верхний левый угол (означает отрицательные значения x и y направления)

Состояние меняется на UIGestureRecognizerStateEnded, если направление положительно, когда пользователь поднимает палец, но он просто перестает сообщать действия, если оба направления отрицательны или равны нулю.

Это плохо, потому что я скрываю некоторые виды наложения, пока пользователь перетаскивает что-то, и эти представления не возвращаются в случае сбоя.

Конечно, я мог бы настроить NSTimer для отображения наложения после некоторого время снова автоматически, но я не вижу очевидной ошибки в моем коде и Я хочу, чтобы он был чистым.

Я что-то пропустил? Ошибка Apple?

Инициализация выглядит следующим образом:

pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panRecognized:)];
[self addGestureRecognizer:pan];
[pan release];

Функция обработки выглядит следующим образом:

- (void)panRecognized:(UIPanGestureRecognizer *)gestureRecognizer {
    switch ([gestureRecognizer state]) {
        case UIGestureRecognizerStateBegan:
            // fade some overlaying views out
            break;
        case UIGestureRecognizerStateEnded:
        case UIGestureRecognizerStateCancelled:
        case UIGestureRecognizerStateFailed:
            // fade in the overlays
            break;
        default:
            break;
    }

    // handle panning
}
13
задан Sanjay Chaudhry 14 February 2013 в 19:05
поделиться