2017-06-09 19 views
1

ジェスチャーがスワイプダウンまたはスワイプアップするかどうかを判断するパンジェスチャーの速度を知りたい。スワイプが下向きの場合、ビューはタッチを受け取らず、タッチイベントを処理するhitTestによってそのスーパービューにタッチを戻すべきであり、タッチが上向きであれば現在のビューがタッチイベントを処理するはずです。しかし、私は、現在のビュー(サブビュー)内のshouldReceiveTouchメソッドの中で接触の速度を得ることができません。iOS UIGestureRecognizer shouldReceiveTouch - パンジェスチャーの速度が0

これは、gestureRcognizerShouldBeginメソッドが呼び出されるまでタッチが実際に処理されないためですか?

私のアイデアがうまくいかない場合、私が欲しいものを達成するための他の方法はありますか?

答えて

0

私はthisが実際に欲しいものを手助けするかもしれないと思います。あなたがしなければならないのは、目的の関数を使用して、Yの値を使って方向を得ることです。

私はちょうどそのスレッドが私たちを助けた方法を共有しました。あなたは試みることができます。

- (void)pan:(UIPanGestureRecognizer *)recognizer 
{ 
if ((recognizer.state == UIGestureRecognizerStateChanged) || 
    (recognizer.state == UIGestureRecognizerStateEnded)) 
{ 
    CGPoint velocity = [recognizer velocityInView:self.view]; 

    if (velocity.y >0) // panning down 
    { 
     //Do your thing 
    } 
    else    // panning up 
    { 
     //Do your thing 
    } 
} 
} 
関連する問題