如何判斷UIPanGestureRecognizer的拖動方向


最近做一個項目,需要用到UIPanGestureRecognizer做一個側滑菜單,需求是不能向右側拖動(點擊按鈕右滑),但可以向左側手勢拖動收回;於是需要判斷拖動的方向,百度了一下,網上大部分的答案是這樣判斷的:

CGPoint translation = [recognizer translationInView:recognizer.view];

if(translation.x>0)

{

  //向右滑動

}

else

{

  //向左滑動

}

不過,在實際開發中,我發現不論是向左拖動或者是向右拖動,translation.x始終大於0,於是看了一下translationInView:的官方解釋是獲取手勢在相對指定視圖的移動距離,即在X,Y軸上移動的像素,應該是沒有正負的,於是考慮用velocityInView:這個方法,這個方法是獲取手勢在指定視圖坐標系統的移動速度,結果發現這個速度是具有方向的,

CGPoint velocity = [recognizer velocityInView:recognizer.view];

if(velocity.x>0)

{

  //向右滑動

}

else

{

//向左滑動

}

於是乎,問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM