先说下,产生冲突的背景.我的主界面是个UINavigationController,我给导航控制器添加了个UIScreenEdgePanGestureRecognizer,设置滑动边界为左边界.代码如下:
panGes = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(onSlideEdgeGes:)];
[navigationController.view addGestureRecognizer:panGes];
panGes.edges = UIRectEdgeLeft;
然后我在主界面添加了个UIScrollView,ScrollView自带滑动手势会屏蔽panGes的手势.解决方法:通过设置手势重叠的时候的触发优先级()
CGRect headViewRect = CGRectMake(0, 0, CGRectGetWidth(APPRECT),CGRectGetHeight(self.view.frame) - FOOTERVIEW_HEIGHT);
headScrollView = (CustomScrollView *)initScrollViewWithClass([CustomScrollView class],self.view, headViewRect, self, CGSizeMake(deviceArrs.count * CGRectGetWidth(headScrollView.frame), CGRectGetHeight(headScrollView.frame)), YES);
headScrollView.pagingEnabled = YES;
headScrollView.bounces = FALSE;
headScrollView.showsVerticalScrollIndicator = FALSE;
关键代码:headScrollView的手势和panges重合时panges优先
[headScrollView.panGestureRecognizer requireGestureRecognizerToFail:appDelegate.rootNavigtionManager.panGes];
本文详细介绍了在iOS应用中使用UINavigationController时遇到屏幕滑动手势冲突的问题,通过设置手势重叠时的触发优先级,成功解决了UIScrollView自带滑动手势屏蔽UIScreenEdgePanGestureRecognizer的情况。
2330

被折叠的 条评论
为什么被折叠?



