[英]Adding single and double tap gesture on subview of UITableViewCell
[英]UITableViewCell tap on subview without cell selection
我有一個帶有UIImageView
imgView的自定義tableviewCell。 我將UITapGestureRecognizer
添加到imgView中,這樣每當我點擊它時我都可以更改imgView的圖像。 但是,當我點擊imgView時,也會觸發didSelectRowAtIndexPath
。 我想要的是:
didSelectRowAtIndexPath
didSelectRowAtIndexPath
,只需調用手勢回調來改變imgView的圖像。 當我點擊imgView內部時已經調用了回調函數,但在這種情況下我無法阻止didSelectRowAtIndexPath。 我一直在尋找幾個小時,但還沒有找到解決方案。 我正在使用objective-c 。 有人對我的問題有任何想法嗎? 謝謝大家!
更新
最后我發現了我的錯誤。
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.