解決MMDrawerController和UIScrollView手勢沖突

當(dāng)MMDrawerController的centerViewController添加UIScrollView的時候,滑動打開抽屜就失效了。我在網(wǎng)上找到這篇帖子https://www.2cto.com/kf/201608/543321.html跟我的問題類似,雖然我使用他的方法并沒有奏效,不過按照他的思路我最終還是解決了我的問題。

解決辦法是寫一個UIScrollView的子類,并實現(xiàn)UIGestureRecognizerDelegate中的方法

@implementation CJScrollView

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {

    if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
        return YES;
    }
    return [super gestureRecognizerShouldBegin:gestureRecognizer];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer*)otherGestureRecognizer {

    if ([gestureRecognizer isKindOfClass:NSClassFromString(@"UIScrollViewPanGestureRecognizer")] &&
        [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {

        if(self.contentOffset.x==0.0f) {
            //這里返回YES,gestureRecognizer和otherGestureRecognizer互斥時,gestureRecognizer會失效
            return YES;
        }
    }
    return NO;
}

@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容