繁体   English   中英

在处理longPressed手势时禁用UIPageViewController手势识别器

[英]disable UIPageViewController gesture recognizer while in Handing longPressed gesture

我有一个UIPageViewController,每个页面在页面上包含多个UIView,每个UIView在longPress手势之后允许Pan手势,我在contentVC中使用以下委托,但似乎pageVC不在乎我在下面的限制,并且它继续翻转这一页! 在平移时是否必须做任何事情来禁用翻页功能? (最后一招是在PageVC上设置一个变量,例如canTurn,并在平移进行时将其设置为NO。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{

    if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]] &&
        [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
        return YES;
    }
    return NO;
}

您应该在PageVC本身中添加-gestureRecognizer:shouldReceiveTouch:方法,或者如果您不想在PageVC本身中添加它,则可以让委托来处理它。

喜欢:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
   if(someCase)
   {
      return yes;
   }

   return no;
}

要么

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
   return [delegate shouldHandle:.....];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM