2

私のプロジェクトで使用MMDrawerControllerしたい.私のホームページにはスクロールビューに1つとScrollview2つtableviewがあります.左のスライドと右のスライドMMDrawerControllerが機能しません.助けてください.[self.drawerController.centerViewController myCustomSubview]がこの問題を解決するのを見たmyCustomSubview が何かわかりませんか?

4

1 に答える 1

0

UIGestureRecognizerDelegateUIScrollView はジェスチャの競合を管理するメソッドを提供し、UIScrollView は使用されるジェスチャを公開して、よりきめ細かい制御を提供できるようにします。

それらをsetGestureShouldRecognizeTouchBlockon drawerController と組み合わせると、競合を管理できるはずです。

とにかく、これは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;
}
于 2015-07-07T11:34:52.403 に答える