2016-05-18 10 views
0

誤ったスワイプを防ぐためにユーザーのスクロール方向を検出する必要があります。 scrollviewがを減速している間、私は、ユーザーのスクロール場合を除いて、ほとんどの場合、それが動作します。この次のコード減速中の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; 
} 

を使用し、その後、速度係数はnullである、と私は、スクロール方向を計算することはできません。

EDIT 1

同様の問題:link

+0

は、コンテンツの幅を画面の幅に設定し、左から右にスクロールしません。 –

+1

水平のpageViewController内で垂直コレクションビューを使用します。ユーザーがcollectionViewを上下にスクロールするとき、私はambigus左右スワイプを防ぐ必要があります。 collectionViewが減速している場合を除いて動作します。 –

答えて

1

私は最も簡単な解決策はUIScrollViewDelegateに直接スクロール方向を検出するためになると思います。 this answer

+0

私は間違ったジェスチャーをブロックするために、 ' - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer'メソッドの中の方向を知る必要があります –