iOS-UIScrollView滑動(dòng)與手勢(shì)沖突

這是scrollView左右滑動(dòng)與側(cè)滑手勢(shì)沖突解決方法。
其實(shí)就是判斷手勢(shì)是否繼續(xù)向下傳遞。

1.當(dāng)然要自定義一個(gè)UIScrollView,在CustomScrollView的手勢(shì)代理方法里實(shí)現(xiàn)自己的邏輯

#import "CustomScrollView.h"


@interface CustomScrollView()

@property(nonatomic,assign)BOOL isMoveRight;

@end

@implementation CustomScrollView


//1返回值是返回是否生效。此方法在gesture recognizer視圖轉(zhuǎn)出UIGestureRecognizerStatePossible狀態(tài)時(shí)調(diào)用,如果返回NO,則轉(zhuǎn)換到UIGestureRecognizerStateFailed;如果返回YES,則繼續(xù)識(shí)別觸摸序列
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{

    //滑動(dòng)速度
    CGPoint velocity = [(UIPanGestureRecognizer *)gestureRecognizer velocityInView:self];
    
    CGPoint location = [gestureRecognizer locationInView:self];
    
    NSLog(@"velocity.x:%f----location.x:%d",velocity.x,(int)location.x%(int)[UIScreen mainScreen].bounds.size.width);
    
    //x方向速度>0為右滑動(dòng),反之為左滑動(dòng)
    if (velocity.x > 0) {
        
        self.isMoveRight = YES;
        
    }else{
        
        self.isMoveRight = NO;
    }
    
    return YES;

}



//2
//此方法返回YES時(shí),手勢(shì)事件會(huì)一直往下傳遞(允許多手勢(shì)觸發(fā)),不論當(dāng)前層次是否對(duì)該事件進(jìn)行響應(yīng)。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    
    
    UIScrollView * scrollvire = (UIScrollView *)gestureRecognizer.view;
    
    //根據(jù)contentOffset.x 與 滑動(dòng)方向 來(lái)判斷手勢(shì)是否向下傳遞
    if (scrollvire.contentOffset.x == 0 && self.isMoveRight == YES) {
        
        return YES;
    }
    
    return NO;
   
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,667評(píng)論 4 61
  • 在成長(zhǎng)的過(guò)程中,我逐漸意識(shí)到最好的回答莫過(guò)于:我的感受,與你相同。但是同時(shí)我并不認(rèn)為在這諾大的地球上會(huì)有人能真的完...
    半痕閱讀 606評(píng)論 0 0
  • 1. 今天,我很不高興,因?yàn)槲以谝晃慌笥焉砩侠速M(fèi)了很多時(shí)間。 對(duì)于時(shí)間的流逝,我一般會(huì)使用兩個(gè)不同的詞語(yǔ)去定義,一...
    顧一宸閱讀 3,071評(píng)論 34 104

友情鏈接更多精彩內(nèi)容