![](/img/trans.png)
[英]How to limit area when sliding a view with UIPanGestureRecognizer?
[英]how to limit UIPanGestureRecognizer with in parent view
嗨,我在我的項目中使用了UIPanGestureRecognizer
。 我用下面的代碼來處理UIPanGestureRecognizer
- (void)handlePan:(UIPanGestureRecognizer *)recognizer {
CGPoint translation = [recognizer translationInView:self];
CGFloat newX = MIN(recognizer.view.frame.origin.x + translation.x, self.frame.size.width - recognizer.view.frame.size.width);
CGRect newFrame = CGRectMake( newX,recognizer.view.frame.origin.y, recognizer.view.frame.size.width, recognizer.view.frame.size.height);
recognizer.view.frame = newFrame;
[recognizer setTranslation:CGPointZero inView:self];
}
我在項目中有兩個視圖,一個是父視圖(紅色視圖),另一個是子視圖(綠色視圖)。 我的要求是我需要在父視圖中平移子視圖。 我的handlePan
方法可以正常工作,但唯一的問題是它允許平移超出左側的限制。 它在右側完美工作。 我需要更改代碼的內容請幫幫我。
您應該檢查UIGestureRecognizerDelegate
實現- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
並在您不希望手勢識別器接收到觸摸事件時返回NO。
在手勢識別器上為新觸摸調用touchesBegan:withEvent:之前,將調用此方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.