ScrollView和系統手勢滑動時,沖突問題的解決辦法


原文鏈接:http://blog.csdn.net/hjaycee/article/details/49279951#0-tsina-1-90689-397232819ff9a47a7b7e80a40613cfe1

直接上解決辦法:

1.首先自定義一個scrollView,比如:CustomScrollView,遵守<UIGestureRecognizerDelegate>協議,然后在實現文件中寫如下代碼:

 

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    // 首先判斷otherGestureRecognizer是不是系統pop手勢
    if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) {
        // 再判斷系統手勢的state是began還是fail,同時判斷scrollView的位置是不是正好在最左邊
        if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {
            return YES;
        }
    }
    
    return NO;
}


2.那個橫向滾動的scrollView繼承這個自定義scrollView,也就是CustomScrollView

 

 

原理:

scrollView的pan手勢會讓系統的pan手勢失效,所以我們只需要在系統手勢失效且scrollView的位置在初始位置的時候讓兩個手勢同時啟用就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM