[英]How to detect touch inside an UITableViewCell
我有一个自定义UITableViewCell
其中有四个UIImageView
。 我想检测这些imageViews上的触摸,并通知我的ViewController
(其中包含UITableView
)已在其中点击了哪个ImageView
。 我该怎么办?
尝试这个:
-(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
}
使用四个按钮,并为它们设置不同的标签值。 然后,只需检查标签值即可查看按下了哪个标签。
有两种变体可以击中目标。 实际上,在单元级别上的执行方式根本不重要。 它可能是按钮,带有轻击手势识别器的图像视图或自定义绘图以及正在进行的触摸事件。 我现在不会为您提供代码,因为您已经提供了很多代码,并且可能通过需求搜索而发现很多东西,而经过很少的搜索。 真正的“问题”在于将消息传输到控制器。 为此,我只找到了两个合理的解决方案。 首先是通知,其次是代表团。 请注意,通知方法可能会导致点击和实际事件发生之间的可见滞后,因为有时通知会以很小的延迟传递给对象。
希望对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.