我想在项目中使用MMDrawerController。我的主页在滚动视图中有一个Scrollview和两个tableview。所以左幻灯片和右幻灯片MMDrawerController不起作用。请帮帮我。我看到[self.drawerController.centerViewController myCustomSubview]正在解决此问题?我不知道myCustomSubview是什么?

最佳答案

UIGestureRecognizerDelegate提供了用于管理手势冲突的方法,UIScrollView公开了所使用的手势,因此您可以提供更精细的控制。

如果将它们与抽屉控制器上的setGestureShouldRecognizeTouchBlock结合使用,则应该能够管理冲突。

无论如何,这不能仅通过setGestureShouldRecognizeTouchBlock来实现。
您可以使用shouldRequireFailureOfGestureRecognizer实际禁用滚动视图手势来实现。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    if (gestureRecognizer != self.panGesture || self.openSide != MMDrawerSideNone) {
        return NO;
    }
    CGPoint velocity = [self.panGesture velocityInView:self.panGesture.view];
    BOOL isHorizontalGesture = fabs(velocity.y) <= fabs(velocity.x);

    if(isHorizontalGesture) {
        CGPoint point = [gestureRecognizer locationInView:gestureRecognizer.view];
    if(([self isPointContainedWithinLeftBezelRect:point] && self.leftDrawerViewController) ||
       ([self isPointContainedWithinRightBezelRect:point] && self.rightDrawerViewController)){
            otherGestureRecognizer.enabled = NO;
            otherGestureRecognizer.enabled = YES;
            return YES;
        }
    }
    return NO;
}

关于ios - 谁一直在使用MMDrawerController,手势冲突怎么解决,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28977146/

10-12 00:11
查看更多