我有一个自定义UITableViewCell
,里面有四个UIImageView
。我想检测这些imageViews上的触摸并通知我的ViewController
(其中包含UITableView
)ImageView
哪个单元格已被点击。我怎么能这样做?
答案 0 :(得分:4)
试试这个:
-(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
}
答案 1 :(得分:1)
使用四个按钮并使用不同的标签值进行设置。然后只需检查标签值,看看哪一个被按下了。
答案 2 :(得分:1)
有几种变种可以击中目标。事实上,你在细胞层面如何做这件事并不重要。它可以是按钮,具有敲击手势识别器的图像视图或自定义绘图和继续触摸事件。我现在不会为您提供代码,因为您已经提供了大量代码,并且可能会通过少量搜索找到更多代码,认为它可能是由需求提供的。真正的“问题”是将消息传送到控制器。为此,我发现只有两个合理的解决方案。首先是通知,第二是代表团。请注意,通知方法可能会导致点击和实际事件发生之间的可见滞后,因为有时会将通知带到没有延迟的对象... ... 希望它有所帮助。