У меня есть небольшая проблема с UIPanGestureRecognizer. Recognizer не сообщает 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
}