2016-05-18 4 views
0

Мне нужно определить направление прокрутки пользователя, чтобы предотвратить неправильный салфетки. Я использую этот следующий кодUIScrollView скорость 0 при замедлении

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 

     CGPoint velocity = [(UIPanGestureRecognizer *)gestureRecognizer velocityInView:self]; 


      if (fabs(velocity.y) * 2 < fabs(velocity.x)) 
      { 
       //scroll LEFT or RIGHT 
       return NO; 
      } 
      else 
      { 
       //scroll UP or DOWN 
      } 


     return YES; 
} 

он работает в большинстве случаев, за исключением случаев, пользователя свитка в то время как Scrollview замедляется, то коэффициент скорости равна нулю, и я не могу вычислить направление прокрутки.

EDIT 1

аналогичная проблема: link

+0

установить содержимое в ширину экрана, и оно не будет прокручиваться влево-вправо –

+1

Я использую вертикальную коллекциюView внутри горизонтальной страницыViewController. Когда пользователь прокручивает вверх/вниз элемент коллекции, мне нужно предотвратить двойное смещение влево/вправо. он работает, за исключением случаев, когда коллекцияView замедляется. –

ответ

1

Я думаю, что самое простое решение будет определять направление прокрутки непосредственно на UIScrollViewDelegate. Посмотрите на this answer

+0

Мне нужно знать направление внутри '- (BOOL) gestureRecognizerShouldBegin: (UIGestureRecognizer *) gestureRecognizer' метод блокировки любых неправильных жестов –

Смежные вопросы