0

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

还是我必须维护一个将 uiimage 映射到我的数据的映射?

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

4

2 回答 2

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
            }
        }
    }

}
于 2013-09-13T21:31:20.930 回答
0

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

于 2013-09-13T21:25:25.323 回答