0

我有一个带有 UIImageView 的数组。假设当前数组中有 5 个 UIImageView。我怎么知道我当前正在触摸哪个 UIImageView?

谢谢。

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
    UITouch *touch = [touches anyObject];

    if ([touch view] == ??)
    {

    }
}
4

3 回答 3

0

最简单的解决方案之一是设置tag视图的属性。

@property(nonatomic) NSInteger tag

这样您就可以轻松地检索到被触摸的对象:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{
    UITouch *touch = [touches anyObject];
    if ([[touch view] tag] == 1)
    {
        // ...
    }

}

您可以在 Interface Builder 中设置此属性,也可以直接在代码中设置。

于 2012-02-28T10:24:00.993 回答
0

正如另一位海报所说,使用标签。不过,他的代码有点乱。我永远不会像他那样称呼财产。你应该做

[touch view].tag

通过这种方式,其他人将更容易阅读您的代码。此外,您可以像这样设置 UIImageViews 的标签:

yourImageView.tag = 1

其中 yourImageView 是图像。

于 2012-02-28T10:27:47.100 回答
0

为循环中的每个图像提供标签值

for(int i=0;i<5;i++)
{
view.tag=i
}
于 2012-02-28T10:34:15.490 回答