我有一個自定義UITableViewCell
,其中有四個UIImageView
。我想檢測這些imageViews的觸摸,並通知我的ViewController
(其中包含UITableView
)哪個ImageView
在哪個單元格內被點擊。我該怎麼做?如何檢測UITableViewCell內部的觸摸
回答
有幾個變種,以擊中目標。事實上,你在細胞水平上做什麼並不重要。它可以是按鈕,帶有輕觸手勢識別器的圖像視圖或自定義繪圖以及繼續觸摸事件。我現在不會爲您提供代碼,因爲您已經提供了很多代碼,並且可能會通過少量搜索找到更多代碼,並認爲它可能是按需提供的。真正的「問題」在於將消息傳送給控制器。爲此我找到了兩個合理的解決方案。首先是通知,其次是代表團。請注意,通知方法可能會導致點擊事件和實際事件發生之間的可見延遲,因爲有時候通知會以很小的延遲傳遞給對象...
希望它有幫助。
我終於實現了它使用UIButtons而不是UIImageView(UIImageView將工作,但我必須添加手勢識別器,UIButton是一個更乾淨的解決方案),並將代理方法添加到UITableViewCell中,通知視圖控制器何時哪個按鈕已被按下。 – rushafi
使用四個按鈕並使用不同的標籤值設置它們。然後只需檢查標記值以查看哪一個被按下。
試試這個:
-(void)createGestureRecognizers {
for(/*each of the UIImageViews*/) {
UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTap:)];
singleFingerTap.numberOfTapsRequired = 1;
[imageView addGestureRecognizer:singleFingerTap];
imageView.tag = i;
[singleFingerTap release];
}
}
- (void)handleSingleTap:(UIGestureRecognizer *)sender {
UIImageView *imageView = (UIImageView *)sender.view;//this should be your image view
}
偉大的解決方案,但它沒有爲我添加imageView.userInteractionEnabled = YES;謝謝@Valentin Radu – DeZigny
- 1. iPhone - 檢測觸摸UITableViewCell的子視圖
- 2. 檢測觸摸UIButton
- 3. 檢測CAShapeLayer觸摸
- 4. UINavigationItem:檢測觸摸
- 5. 如何檢測MPMoviePlayerViewController上的觸摸
- 6. 如何檢測圓圈中的觸摸
- 7. 如何檢測何時觸摸drawable
- 8. 檢測觸摸並按住UITableViewCell,我的選擇是什麼?
- 9. 檢測UIScrollView下的觸摸
- 10. 如何檢測3D模型特定部分的點擊(觸摸)?
- 11. 如何檢測外部拖動的視圖觸摸?
- 12. Cocos2dx,如何檢測部分精靈的觸摸?
- 13. 如何檢測多點觸摸事件?
- 14. 我如何檢測觸摸UIStatusBar/iPhone
- 15. Box2D如何檢測觸摸元素
- 16. 如何在UIWebView上檢測觸摸
- 17. 如何檢測UIWebView內的YouTube視頻播放按鈕觸摸?
- 18. 如何在我的自定義視圖中檢測內部觸摸?
- 19. UITableViewCell動畫中斷UITableView觸摸檢測和滾動
- 20. 觸摸內部的UIImageView
- 21. 不可觸摸的UITableViewCell
- 22. 如何在UITableViewCell觸摸上加載URL
- 23. 檢測觸摸次數
- 24. 檢測觸摸事件
- 25. 在MPVolumeView中檢測觸摸
- 26. 多點觸摸檢測
- 27. 在webview上檢測觸摸
- 28. 觸摸屏檢測:鉻17
- 29. 觸摸檢測問題
- 30. UIImageView子類觸摸檢測
爲什麼不用4個按鈕來代替...? – user387184