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