如何检测UITableViewCell内部的触摸

时间:2011-09-20 21:48:27

标签: iphone ios

我有一个自定义UITableViewCell,里面有四个UIImageView。我想检测这些imageViews上的触摸并通知我的ViewController(其中包含UITableViewImageView哪个单元格已被点击。我怎么能这样做?

3 个答案:

答案 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)

有几种变种可以击中目标。事实上,你在细胞层面如何做这件事并不重要。它可以是按钮,具有敲击手势识别器的图像视图或自定义绘图和继续触摸事件。我现在不会为您提供代码,因为您已经提供了大量代码,并且可能会通过少量搜索找到更多代码,认为它可能是由需求提供的。真正的“问题”是将消息传送到控制器。为此,我发现只有两个合理的解决方案。首先是通知,第二是代表团。请注意,通知方法可能会导致点击和实际事件发生之间的可见滞后,因为有时会将通知带到没有延迟的对象... ... 希望它有所帮助。