首页 > 代码库 > 关于iOS抽屉MMDrawerController手势冲突
关于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);
}
关于iOS抽屉MMDrawerController手势冲突