拖拽手势和清扫手势冲突时(UIPanGestureRecognizer和UISwipeGestureRecognizer冲突时)
2016-04-03 09:01
585 查看
故事发生在这样的情境上:给整个控制器添加了一个拖拽手势,然后又在控制上的每个Cell上加了左滑清扫手势,然后问题来了:只有拖拽手势起作用,而左滑手势没有效果了,然后怎么解决这个问题呢!先上图:
当给整个控制器添加了拖拽手势(UIPanGestureRecognizer),然后在控制器里面的UITableViewCell又添加了左滑清扫手势(UISwipeGestureRecognizer),造成了只有拖拽手势起了作用,而Cell的左滑手势已经不能滑动了!
解决办法就是给这两个手势设置一个优先级:[panGes requireGestureRecognizerToFail:cell.leftSwipe];
关键代码
至于如何给Cell设置左滑多菜单功能手势,见拙文:自定义UITableViewCell实现左滑动多菜单功能LeftSwipe
DEMO下载:
github: https://github.com/xiaotanit/Tan_SwipeAndPan
原文链接:/article/11921403.html
当给整个控制器添加了拖拽手势(UIPanGestureRecognizer),然后在控制器里面的UITableViewCell又添加了左滑清扫手势(UISwipeGestureRecognizer),造成了只有拖拽手势起了作用,而Cell的左滑手势已经不能滑动了!
解决办法就是给这两个手势设置一个优先级:[panGes requireGestureRecognizerToFail:cell.leftSwipe];
关键代码
+ (instancetype)cellWithTableView:(UITableView *)tableView{ static NSString *reuseIdentity = @"tanCell"; TanTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseIdentity]; if (cell == nil){ cell = [[TanTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentity]; //设置手势优先级,避免手势冲突 UIPanGestureRecognizer *panGes = [tableView.superview.gestureRecognizers objectAtIndex:0]; [panGes requireGestureRecognizerToFail:cell.leftSwipe]; [panGes requireGestureRecognizerToFail:cell.rightSwipe]; } return cell; }
至于如何给Cell设置左滑多菜单功能手势,见拙文:自定义UITableViewCell实现左滑动多菜单功能LeftSwipe
DEMO下载:
github: https://github.com/xiaotanit/Tan_SwipeAndPan
原文链接:/article/11921403.html
相关文章推荐
- Blueprint编译过程
- Longest Continuance Increasing sub-sequence in matrix
- Arduino 的读串口与写串口
- selenium系列->Actions命令实例整理->setSpeed(Value)
- StringBuilder与StringBuffer
- 【9-4】迭代dict的key和value
- POJ-1947 Rebuilding Roads (树形DP+分组背包)
- 【9-3】迭代dict的value
- queryTask
- uva 1584.Circular Sequence
- 三、安卓UI学习(1)
- 理解 Android Build 系统
- HDU1159 && POJ1458:Common Subsequence(LCS)
- 基于WindowsIocp及Duilib的服务器
- Android UI基础——CheckBox&RadioButton控件
- poj 2533 Longest Ordered Subsequence(LIS)
- UI控件--上下文Menu
- 苹果开发工具:Xcode和Interface Builder
- IOS 使用Interface Builder开发界面入门与技巧
- UI控件--PopWindow