MMDrawerController与UITableView的左滑手势冲突

前言

MMDrawerController是在github有着超高人气的抽屉式第三方,使用起来很方便,这里就不多说了,说一下我使用过成中遇到的问题

在UITableView种有左滑删除的需求,这个和MMDrawerController右滑打开菜单发生了冲突,导致左滑删除时灵时不灵
  • 思索再三,决定去MMDrawerController的头文件看一看,找找跟手势相关的代码,搜索GestureRecognizer相关代码发现了问题
-(MMOpenDrawerGestureMode)possibleOpenGestureModesForGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer withTouch:(UITouch*)touch;

上面这段代码是打开侧边视图的手势代码,跳进去看看发现



-(BOOL)isPointContainedWithinCenterViewContentRect:(CGPoint)point
{  
  //这个是原来的代码:  手势区域是整个屏幕
//    CGRect centerViewContentRect = self.centerContainerView.frame; 
     
  //我们来修改下这句代码: 把触发打开抽屉手势识别放在屏幕左侧宽50,高为屏幕高度的rect中  
    CGRect centerViewContentRect = CGRectMake(0, 0, 50, self.centerContainerView.frame.size.height);  
  
    centerViewContentRect = CGRectIntersection(centerViewContentRect,self.childControllerContainerView.bounds);  
  
    return (CGRectContainsPoint(centerViewContentRect, point) &&  
  
            [self isPointContainedWithinNavigationRect:point] == NO);  
  
}  

然后cmd+r运行下,完美.

记录自己开发的点滴,努力成长. 加油!!!

你可能感兴趣的:(MMDrawerController与UITableView的左滑手势冲突)