关于iOS抽屉MMDrawerController手势冲突

问题:项目中使用到抽屉控制器MMDrawerController,中间视图设置为TabbarController。现TabbarController上的一个子控制器添加了一个TableController,cell添加侧滑删除,不灵。

原因:抽屉MMDrawerController侧滑手势与cell删除侧滑手势冲突。

解决方案:

将抽屉控制器MMDrawerController侧滑手势范围由全屏改为左侧;

找到MMDrawerController.h类,修改方法 (BOOL)isPointContainedWithinCenterViewContentRect:(CGPoint)point。

代码如下:

-(BOOL)isPointContainedWithinCenterViewContentRect:(CGPoint)point{

//    CGRect centerViewContentRect = self.centerContainerView.frame;

CGRect centerViewContentRect = CGRectMake(0, 0, 50, self.centerContainerView.frame.size.height);//修改后的意思是把触发打开抽屉手势识别放在屏幕左侧宽50,高为屏幕高度的rect中

centerViewContentRect = CGRectIntersection(centerViewContentRect,self.childControllerContainerView.bounds);

return (CGRectContainsPoint(centerViewContentRect, point) &&

[self isPointContainedWithinNavigationRect:point] == NO);

}

时间: 2025-01-09 16:55:40

关于iOS抽屉MMDrawerController手势冲突的相关文章

iOS开发 MMDrawerController左右抽屉打开手势与中心视图子视图控制器手势冲突问题的解决方案

MMDrawerController是一个很好用的解决抽屉效果的第三方类,但有时候当我们在中心视图控制器中需要使用手势进行其他操作的时候会产生手势冲突,导致运行效果不符合我们的想象.那么问题来了,该怎么解决冲突问题呢? 下面是我在使用过程中的个人总结: 我的需求: 1.有一个左抽屉和中心视图控制器,从中心视图控制器右滑可以打开左抽屉. 2.中心视图控制器中的TableViewCell可通过滑动手势删除 问题所在: 1.由于删除cell的左滑手势和MMDrawerController的打开右抽屉的

iOS自定义全屏返回与tableView左划删除手势冲突解决

当自定义一个navigationController实现全屏右划返回时, 使用起来是不是很爽, 代码如下: - (void)viewDidLoad { [super viewDidLoad]; UIGestureRecognizer *gester = self.interactivePopGestureRecognizer; UIPanGestureRecognizer *panGesTer = [[UIPanGestureRecognizer alloc] initWithTarget:ge

iOS 手势冲突

UITableView以及ScrollView不能相迎TouchBegin处理 IOS开发之手势--UIGestureRecognizer 共存 // 关键在这一行,如果双击确定偵測失败才會触发单击 [singleRecognizer requireGestureRecognizerToFail:doubleRecognizer]; 关于UIScrollView不能响应UITouch事件的解决办法 覆盖touch事件 ios的手势操作之UIGestureRecognizer浅析 UITapGes

tableView与抽屉(YRSiderController)手势冲突

本人用的是第三方抽屉, 在抽屉这个类型的三方中,大家都会用到侧滑效果,然而当tableView本身自带的编辑模式的删除方法(侧滑cell删除当前cell)也触发手势之后,系统就会产生手势冲突.这个问题困扰好久,不过最终还是解决了 :). 解决方案:我是在第三方的.m中添加了如下代码,解决的手势冲突问题. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)

iOS解决嵌套在ScrollView中的TableView滑动手势冲突问题

最近在迭代开发公司项目的时候遇到了一个问题,在可以左右切换标签视图的ScrollView中嵌套了两个TableView用于展示视图,感觉一切so easy的情况下,问题出现了,因为左右两个视图既可以实现标签切换,其中TableView还需要侧滑删除功能,那么问题来了,滑动手势懵逼了,这是要搞事情啊!他无法识别到底要做什么处理,因为滑动手势冲突了,下面简单介绍一下解决思路: 大致的项目需求如上图所示: 经过一番资料的查阅,解决办法就是继承自UIScrollView,重写UIScrollView类:

解决右滑返回手势和UIScrollView中的手势冲突

项目中遇到一个页面中是以一个scrollview横向Tab展示两个不同功能的显示,譬如消息和公告功能,但是由于滑动返回手势和scrollview的滑动返回手势冲突了,导致页面不再能够滑动返回.类似的还有图片浏览功能也出现过. iOS系统中,滑动返回手势,其实是一个UIPanGestureRecognizer,系统默认的操作是只有滑动屏幕的左边的某个位置,UIPanGestureRecognizer才会起作用.UIScrollView的滑动手势也是UIPanGestureRecognizer.那在

iOS抽屉效果和侧边菜单

iOS抽屉效果和侧边菜单 源码下载地址 1.效果演示 1. 抽屉效果演示 1. 侧边菜单演示 2.使用说明 构造方法 initialization /// 构造方法(左控制器 & 右控制器 & 背景图片) -(instancetype)initWithLeftController:(UIViewController *)leftController andMainController:(UIViewController *)mainController andRightController

JSON、数据存储、对象唯一和手势冲突

有时候加载数据的时候,后台正常返回了,安卓正常显示了,可是无论是加载更多还是访问数据,就是加载不了那么多.这时候就要考虑是不是JSON中有哪些是iOS不支持的特殊标记或者字符了,别再苦苦找代码逻辑,语法错误了,特别是那种原来没问题,现在有问题的.不要管别人是否暗示你,咋我设备就行,你咋显示不了,是不是你技术不行.明确告诉他,不是,可能是数据的问题. 有时候你需要保存一个数据,例如时间,你需要在启动的时候就保存一下时间,然后每次启动都在和这个时间做比较,可是怎么能让你保存的时间不被系统启动时不断的

蓝懿IOS学习七大手势Touches

今天学习了ios编程里手势的方法及应用场景,屏幕页面中区分很多控件,有的控件可以有点击事件和用户直接交互,可以执行相应方法,如TextField,Button,UISEgmentControll等,但是静态lableUIImageView等就需要把交互开关打开,添加响应的手势才能实现交互. 刘国斌老师详细的对我们讲了七大手势,包括点击Touches,UIPanGestureRecognizer拖动,UILongPressGestureRecognizer长按手势,UIScreenEdgePanG