簡體   English   中英

UITableViewCell點擊子視圖而不選擇單元格

[英]UITableViewCell tap on subview without cell selection

我有一個帶有UIImageView imgView的自定義tableviewCell。 我將UITapGestureRecognizer添加到imgView中,這樣每當我點擊它時我都可以更改imgView的圖像。 但是,當我點擊imgView時,也會觸發didSelectRowAtIndexPath 我想要的是:

  • 在外部點擊imgView:Trigger didSelectRowAtIndexPath
  • 當點擊imgView:Block didSelectRowAtIndexPath ,只需調用手勢回調來改變imgView的圖像。

當我點擊imgView內部時已經調用了回調函數,但在這種情況下我無法阻止didSelectRowAtIndexPath。 我一直在尋找幾個小時,但還沒有找到解決方案。 我正在使用 有人對我的問題有任何想法嗎? 謝謝大家!

更新

最后我發現了我的錯誤。

UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onFavouriteIconTapped:)];


tapGesture.cancelsTouchesInView = NO; // this should be YES by default

[_ivImageView addGestureRecognizer:tapGesture];

只需設置cancelsTouchInView = YES修復我的問題。 如果值為YES,則ivImageView將使用觸摸事件,並且不會選擇單元格。 希望這可以幫助那些遇到同樣問題的人。

@SHN,你是對的。 可能是@meaholik,你錯過了那條線。

imageView.userInteractionEnabled = TRUE;

您也可以查看此鏈接

希望它會對你有所幫助。 :)

你的方法很好。 您的點擊手勢選擇器未被調用,可能是因為您可能尚未啟用UIImageView的用戶交互。

imageView.userInteractionEnabled = TRUE;

對於UIImageView,userInteractionEnabled的默認值為NO。

一旦你的選擇器開始被調用,你將得到所需的行為,即點擊imgView,點擊手勢選擇器被調用,並在imgView didSelectRowAtIndexPath外部觸摸時將被調用。 這符合iOS響應者鏈規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM