将上下文信息与Tap Gesture相关联

时间:2013-09-13 21:19:05

标签: ios objective-c

我有一个UITableView,每行有两个图像。这些图像来自数据结构。我想设置一个tap事件并让tap事件处理程序根据所选图像检索数据结构。有没有办法关联上下文数据?

或者我是否必须维护将uiimage映射到我的数据的映射?

我也不希望每个图像都有一个单独的处理程序。

2 个答案:

答案 0 :(得分:2)

通过使用点按手势,您可以实现以下内容:

- (void)didRecognizeTapGesture:(UITapGestureRecognizer*)gesture
{
    if (gesture.state == UIGestureRecognizerStateEnded)
    {
        CGPoint point = [gesture locationInView:self.tableView];

        NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];

        if (indexPath != nil)
        {
            MyCustomCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

            point = [self.tableView convertPoint:point toView:cell];

            if (CGRectContainsPoint(cell.imageView1.frame, point))
            {
                //it touches image 1
            }
            else if (CGRectContainsPoint(cell.imageView2.frame, point))
            {
              //it touches images 2
            }
        }
    }

}

答案 1 :(得分:0)

您可以根据indexPath.row为图像视图标记提供标记,然后您可以获取该标记,这将为您提供数据结构的索引。您可以从手势识别器的视图属性中获取标记,该属性将指向已点击的图像视图。