如何在父视图中限制UIPanGestureRecognizer

时间:2013-01-23 07:49:28

标签: iphone ios uigesturerecognizer uipangesturerecognizer

您好我在我的项目中使用了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];
}

enter image description here

我的项目中有两个视图,一个是父视图(红色视图),另一个是子视图(绿色视图)。我的要求是我需要在父视图中平移子视图。我的handlePan方法工作正常,但唯一的问题是它允许超出左侧的限制。它在右侧完美地工作。我需要改变代码请帮助我。

1 个答案:

答案 0 :(得分:0)

您应该检查UIGestureRecognizerDelegate

实施- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch并在您不希望手势识别器收到触摸事件时返回NO。

  

在touchesBegan:withEvent:之前调用此方法   手势识别器为新的触摸。

相关问题