我有一个UITableView,每行有两个图像。这些图像来自数据结构。我想设置一个tap事件并让tap事件处理程序根据所选图像检索数据结构。有没有办法关联上下文数据?
或者我是否必须维护将uiimage映射到我的数据的映射?
我也不希望每个图像都有一个单独的处理程序。
答案 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为图像视图标记提供标记,然后您可以获取该标记,这将为您提供数据结构的索引。您可以从手势识别器的视图属性中获取标记,该属性将指向已点击的图像视图。