在UITapGestureRecognizer处理程序中获取tapped单元格

时间:2012-02-09 00:09:55

标签: objective-c xcode ios5 selector uitapgesturerecognizer

我在IOS5应用程序中为我的表格单元设置了一个手势识别器:

UITapGestureRecognizer* oneFingerDoubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(cellOneFingerDoubleTap:)];
oneFingerDoubleTap.numberOfTapsRequired = 2;
[cell addGestureRecognizer:oneFingerDoubleTap];

并实现了处理程序方法:

- (void)cellOneFingerDoubleTap:(id) sender
{
    NSLog(@"taptap");
}

工作正常。我的问题是我无法通过窃听细胞传递细胞或其他一些数据。正如我所见(id)sender是UITapGestureRecognizer本身。

我的问题是:如何在处理程序方法(cellOneFingerDoubleTap)中获取tapped单元格?如何在处理程序方法中获取tapped单元格的索引?

谢谢!

2 个答案:

答案 0 :(得分:9)

如果您从view方法传递给您的手势识别器中抓取cellOneFingerDoubleTap:,那么您将获得已被点击的单元格。类似的东西:

- (void)cellOneFingerDoubleTap:(UIGestureRecognizer*)recognizer {
    UITableViewCell *cell = (UITableViewCell*)recognizer.view;
}

[我只是假设一个“单元格”你的意思是UITableViewCell顺便说一句

答案 1 :(得分:0)

UIGestureRecognizer有一个

-(UIView *)view

可用于获取其附加视图的属性。

由于您将识别器附加到UITableViewCell,因此将识别器的视图传递给UITableView;

-indexPathForCell: