2016-05-18 84 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; 
} 

它在大多數情況下,除了當用戶滾動而滾動視圖減速,那麼速度的因素是空的,我無法計算的滾動方向。

EDIT 1

類似的問題:link

+0

設置contentize爲屏幕的寬度,它不會滾動到從左到右 –

+1

我在一個水平的pageViewController內使用垂直collectionView。當用戶向上/向下滾動collectionView時,我需要防止ambigus左/右滑動。它在收集視圖減速時除外。 –

回答

1

我認爲最簡單的解決方案將是,以直接檢測所述UIScrollViewDelegate滾動方向。看看this answer

+0

我需要知道 ' - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer'方法裏面的方向來阻止任何錯誤的手勢 –