iOS MMDrawerController侧滑菜单与中心视图手势冲突问题的解决方案(续--点击可收起抽屉)

来源:互联网 发布:黑马程序员电脑版网址 编辑:程序博客网 时间:2024/05/16 14:09


类似qq


#import "MMDrawerController.h"


static BOOL isOpenSide;


-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

    

    if(self.openSide == MMDrawerSideNone){

        isOpenSide = YES;

        MMOpenDrawerGestureMode possibleOpenGestureModes = [self possibleOpenGestureModesForGestureRecognizer:gestureRecognizer

                                         withTouch:touch];

        return ((self.openDrawerGestureModeMask & possibleOpenGestureModes)>0);

    }

    else{

        isOpenSide = NO;

        MMCloseDrawerGestureMode possibleCloseGestureModes = 

[self possibleCloseGestureModesForGestureRecognizer:gestureRecognizer

                                                                                          withTouch:touch];

        return ((self.closeDrawerGestureModeMask & possibleCloseGestureModes)>0);

    }

}



-(BOOL)isPointContainedWithinCenterViewContentRect:(CGPoint)point{

    CGRect centerViewContentRect = self.centerContainerView.frame;

    if(isOpenSide)

        centerViewContentRect = CGRectMake(0, 64, 50, self.centerContainerView.frame.size.height-64);

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

    return (CGRectContainsPoint(centerViewContentRect, point) &&

            [self isPointContainedWithinNavigationRect:point] == NO);

}

0 0