我有一个带有 UIImageView 的数组。假设当前数组中有 5 个 UIImageView。我怎么知道我当前正在触摸哪个 UIImageView?
谢谢。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
if ([touch view] == ??)
{
}
}
我有一个带有 UIImageView 的数组。假设当前数组中有 5 个 UIImageView。我怎么知道我当前正在触摸哪个 UIImageView?
谢谢。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
if ([touch view] == ??)
{
}
}
最简单的解决方案之一是设置tag
视图的属性。
@property(nonatomic) NSInteger tag
这样您就可以轻松地检索到被触摸的对象:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
if ([[touch view] tag] == 1)
{
// ...
}
}
您可以在 Interface Builder 中设置此属性,也可以直接在代码中设置。
正如另一位海报所说,使用标签。不过,他的代码有点乱。我永远不会像他那样称呼财产。你应该做
[touch view].tag
通过这种方式,其他人将更容易阅读您的代码。此外,您可以像这样设置 UIImageViews 的标签:
yourImageView.tag = 1
其中 yourImageView 是图像。
为循环中的每个图像提供标签值
for(int i=0;i<5;i++)
{
view.tag=i
}