UITableView不走didSelect方法

問題

開發(fā)中遇到了個問題:點擊tableview的cell努隙,沒有調(diào)用didselect方法

分析原因
  1. 當(dāng)然先排除一些低級錯誤:是否忘了為tableview設(shè)置了代理郊尝;是否有其他view遮擋了cell玻靡;是否設(shè)置了tableview或者cell的userInteractionEnabled為NO等
    排除這些之后發(fā)現(xiàn)依然沒有調(diào)用didSelect方法
  2. 然后去查原因,后來終于發(fā)現(xiàn)是事件響應(yīng)優(yōu)先級出了問題:
    當(dāng)前View稱為AView吧,我在AView上添加了tableview违寿,點擊cell不調(diào)用didSelect方法,后來發(fā)現(xiàn)是因為我在AView的父view上添加了手勢用于收起鍵盤:
- (void)addTabGesture {
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction)];
    tap.delegate = self;
    [self addGestureRecognizer:tap];
    // 監(jiān)聽鍵盤收起
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardHideFunc:) name:UIKeyboardWillHideNotification object:nil];
}

單擊事件優(yōu)先傳遞給手勢響應(yīng)熟空,如果手勢響應(yīng)識別成功藤巢,就會直接取消事件的響應(yīng)鏈傳遞。
這樣當(dāng)我點擊cell的時候息罗,點擊事件首先會被手勢識別器捕獲到掂咒,就無法再繼續(xù)執(zhí)行tableview的代理方法了

解決

》是否可以捕獲到點擊動作,在這個時候判斷點擊的是哪個view迈喉,如果是tableview的cell绍刮,就不繼續(xù)執(zhí)行tapGesture,如果不是再繼續(xù)挨摸。
》UIGestureRecognizerDelegate中有一個代理方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch孩革,
官方解釋是:
called before touchesBegan:withEvent: is called on the gesture recognizer for a new touch. return NO to prevent the gesture recognizer from seeing this touch
在touchesBegan方法之前執(zhí)行,返回NO就可以防止手勢識別器識別到這個touch得运。
那么這個方法就可以滿足我們的需求了

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
   // 獲取當(dāng)前點擊所在的view
    NSString *classStr = NSStringFromClass([touch.view class]);
   // 判斷是否是cell
    if ([classStr isEqualToString:@"UITableViewCellContentView"]) {
        return NO;
    }
    return YES;
}

查看tableveiwcell的層級可以發(fā)現(xiàn)膝蜈,我們點擊cell獲取到點擊事件的其實是contentView


level.png

所以代碼中要判斷所點擊view的類是否是UITableViewCellContentView锅移,自定義cell也是如此

其他

在網(wǎng)上查找的過程中,發(fā)現(xiàn)了別人由于其他原因?qū)е峦瑯訂栴}的彬檀,也寫在這里記錄一下:

  1. 使用xib自定義tableview帆啃,用連線方式設(shè)置代理,但是不小心線連錯了??
  2. 使用了xib自定義tableView窍帝,在xib中設(shè)置了tableView的selection為no selection的》掏担或者在代碼中設(shè)置了tableView的allowsSelection為NO的
  3. 實現(xiàn)了willSelectRowAtIndexPath方法:
willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
return nil;
}
  1. 實現(xiàn)了touchesBegin方法(這個其實跟我的問題是一個原因)
  2. 子view的范圍超出父view的范圍
    這個時候子view雖然可以正常顯示出來坤学,但范圍在父view范圍之外的部分,是完全不能響應(yīng)點擊事件的
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末报慕,一起剝皮案震驚了整個濱河市深浮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眠冈,老刑警劉巖飞苇,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蜗顽,居然都是意外死亡布卡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門雇盖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忿等,“玉大人,你說我怎么就攤上這事崔挖∶辰郑” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵狸相,是天一觀的道長薛匪。 經(jīng)常有香客問我,道長脓鹃,這世上最難降的妖魔是什么逸尖? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮将谊,結(jié)果婚禮上冷溶,老公的妹妹穿的比我還像新娘。我一直安慰自己尊浓,他們只是感情好逞频,可當(dāng)我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著栋齿,像睡著了一般苗胀。 火紅的嫁衣襯著肌膚如雪襟诸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天基协,我揣著相機與錄音歌亲,去河邊找鬼。 笑死澜驮,一個胖子當(dāng)著我的面吹牛陷揪,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播杂穷,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼悍缠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耐量?” 一聲冷哼從身側(cè)響起飞蚓,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎廊蜒,沒想到半個月后趴拧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡山叮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年著榴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片聘芜。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡兄渺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汰现,到底是詐尸還是另有隱情挂谍,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布瞎饲,位于F島的核電站口叙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嗅战。R本人自食惡果不足惜妄田,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驮捍。 院中可真熱鬧疟呐,春花似錦、人聲如沸东且。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珊泳。三九已至鲁冯,卻和暖如春拷沸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背薯演。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工撞芍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跨扮。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓序无,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衡创。 傳聞我的和親對象是個殘疾皇子愉镰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,507評論 2 359

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