如何动态多次检查CGPoint是否在UIImageView内部

时间:2014-08-05 04:57:40

标签: ios objective-c uiimageview touch

我对Objective-C相当新,所以如果我是一个完整的菜鸟,请给我一个指导。

我的问题是我有用户上传的图像显示在列表中,他们可以单击这些图像来执行修改/删除操作。以下方式是编程的一种非常繁琐的方式,但我似乎无法想出一种动态完成此操作的方法,而无需完全重新处理图像处理...

- (void)tapImageView:(UITapGestureRecognizer *)sender
{
    UIImageView *imageView = (UIImageView *)sender.view;
    CGPoint point = [sender locationInView:imageView.superview];

    if (point.y > 35 && point.y < 135)
        imageIndexInteger = 0;

    else if (point.y > 168 && point.y < 268)
        imageIndexInteger = 1;

    else if (point.y > 301 && point.y < 401)
        imageIndexInteger = 2;
    //need to figure out how to do this dynamically for more than 3 images
}

我有一个存储上传图像的数组(在本例中称之为imageArray)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你想要实现这个目标的方式非常迂回。

对此的最佳解决方案可能是使用UICollectionViewUITableView并将触摸作为单元格选择处理,然后您只需获取单元格的索引。

如果你想保持你现在的代码,那么最快的做法就是为每个图像视图分配一个标签,如下所示:

myImageView.tag = 5;

然后你可以得到这样的标签:

- (void)tapImageView:(UITapGestureRecognizer *)sender
{
    UIImageView *imageView = (UIImageView *)sender.view;
    imageIndexInteger = imageView.tag;
}