Ошибка распознавания жестов только в iPhone 4.0 и 4.1 - PullRequest
1 голос
/ 29 марта 2011

Следующий код работает в 4.2 и 4.3, но в 4.0 и 4.1 значение выглядит как NaN, но только в случае UIGestureRecognizerStateEnded.Это показывает правильное значение в UIGestureRecognizerStateChanged

- (void)panGesture:(UIPanGestureRecognizer*)gestureRecognizer
{
  CGPoint touchPoint = [gestureRecognizer locationInView:self];
  switch ( [gestureRecognizer state] ) {
    case UIGestureRecognizerStateChanged:
      NSLog(@"panChanged - touchPoint = %f", touchPoint.x); // Always works
    case UIGestureRecognizerStateEnded:
      NSLog(@"panEnded - touchPoint = %f", touchPoint.x); // Always outputs nan
}

, не уверенный, является ли это ошибкой в ​​части яблок, или я делаю что-то неправильно.Пожалуйста, сообщите

1 Ответ

0 голосов
/ 30 марта 2011

Глядя на свой собственный код, я никогда не проверял координаты в состояниях Начало / Конец. Я просто относился к ним как к отдельным событиям, не связанным с позицией на экране. В случае Конца я предполагаю последние координаты, отправленные Изменено. А в случае «Начало» я не могу доверять координатам, потому что они были определены после того, как жест немного сдвинулся и жест начался, поэтому я спрашиваю свой распознаватель касаний, где были начальные координаты.

Я подозреваю, что это было первоначальное намерение, что Changed должен использоваться, но в 4.2 и 4.3 они также начали заполнять окончательные координаты для End, просто чтобы быть последовательными.

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