UIScrollView橫向滑動(dòng)和返回手勢(shì)沖突

展示圖

最近在做項(xiàng)目的就遇到了這個(gè)問題,UIScrollView橫向滑動(dòng)和返回手勢(shì)沖突.要想知道怎么解決問題,我們最好先要知道為什么會(huì)有這樣的問題.普及一下知識(shí):iOS系統(tǒng)中盈厘,滑動(dòng)返回手勢(shì),其實(shí)是一個(gè)UIPanGestureRecognizer,系統(tǒng)默認(rèn)的操作是只有滑動(dòng)屏幕的左邊的某個(gè)位置涡拘,UIPanGestureRecognizer才會(huì)起作用。UIScrollView的滑動(dòng)手勢(shì)也是UIPanGestureRecognizer界弧。UIGestureRecognizer和UIView是多對(duì)一的關(guān)系,UIGestureRecognizer一定要和view進(jìn)行綁定才能發(fā)揮作用愈魏。因此不難想象,UIGestureRecognizer對(duì)于屏幕上的手勢(shì)事件掰伸,其接收順序和UIView的層次結(jié)構(gòu)是一致的
UINavigationController.view —> UIViewController.view —> UIScrollView —> Screen and User's finger
即UIScrollView的panGestureRecognizer先接收到了手勢(shì)事件皱炉,直接就地處理而沒有往下傳遞。
實(shí)際上這就是兩個(gè)panGestureRecognizer共存的問題狮鸭。

好了,知道了問題,相信它也就沒那么難解決了~~~

方式1

查到的資料中這用方法使用的次數(shù)是最多的,而且也是最簡(jiǎn)單的,應(yīng)該是為不少人解決了這個(gè)沖突的難題,但是不知道為什么用到我的項(xiàng)目是是沒有用的,因此我才找了不知一種方法.代碼如下

[_ZJJLScrollView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];

其實(shí)這個(gè)方法不止是適用于scrollView返回沖突,而且也同樣適用于tableView,因?yàn)楸硪晥D是繼承自滾動(dòng)視圖的.

方式2

1.首先自定義一個(gè)scrollView合搅,比如:CustomScrollView,遵守<UIGestureRecognizerDelegate>協(xié)議歧蕉,然后在實(shí)現(xiàn)文件中寫如下代碼:
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer  
{  
    // 首先判斷otherGestureRecognizer是不是系統(tǒng)pop手勢(shì)  
    if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) {  
        // 再判斷系統(tǒng)手勢(shì)的state是began還是fail灾部,同時(shí)判斷scrollView的位置是不是正好在最左邊  
        if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {  
            return YES;  
        }  
    }  
      
    return NO;  
}
2.那個(gè)橫向滾動(dòng)的scrollView繼承這個(gè)自定義scrollView,也就是CustomScrollView

原理:scrollView的pan手勢(shì)會(huì)讓系統(tǒng)的pan手勢(shì)失效惯退,所以我們只需要在系統(tǒng)手勢(shì)失效且scrollView的位置在初始位置的時(shí)候讓兩個(gè)手勢(shì)同時(shí)啟用就可以了

寫的這里,上述問題就已經(jīng)解決了,但是在這里我又聯(lián)想到了之前遇到的一個(gè)已經(jīng)解決的問題,當(dāng)整個(gè)界面鋪滿了webView的時(shí)候,有時(shí)候也會(huì)出現(xiàn)無(wú)法返回的問題,該怎么解決呢?來(lái),看代碼:

// 允許多個(gè)手勢(shì)并發(fā)
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

在控制器敲上上述的方法就可以了,是不是很簡(jiǎn)單?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赌髓,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锁蠕,老刑警劉巖夷野,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異荣倾,居然都是意外死亡悯搔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門舌仍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)妒貌,“玉大人,你說我怎么就攤上這事抡笼∷沾В” “怎么了黄鳍?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵推姻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我框沟,道長(zhǎng)藏古,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任忍燥,我火速辦了婚禮拧晕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘梅垄。我一直安慰自己厂捞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布队丝。 她就那樣靜靜地躺著靡馁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪机久。 梳的紋絲不亂的頭發(fā)上臭墨,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音膘盖,去河邊找鬼胧弛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛侠畔,可吹牛的內(nèi)容都是我干的结缚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼软棺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼掺冠!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤德崭,失蹤者是張志新(化名)和其女友劉穎斥黑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體眉厨,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锌奴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了憾股。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹿蜀。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖服球,靈堂內(nèi)的尸體忽然破棺而出茴恰,到底是詐尸還是另有隱情,我是刑警寧澤斩熊,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布往枣,位于F島的核電站,受9級(jí)特大地震影響粉渠,放射性物質(zhì)發(fā)生泄漏分冈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一霸株、第九天 我趴在偏房一處隱蔽的房頂上張望雕沉。 院中可真熱鬧,春花似錦去件、人聲如沸坡椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)倔叼。三九已至,卻和暖如春靴跛,著一層夾襖步出監(jiān)牢的瞬間缀雳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工梢睛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肥印,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓绝葡,卻偏偏與公主長(zhǎng)得像深碱,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子藏畅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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