Iphone 如何在TouchsBeging中通过触摸检测选择了哪个UIImageView?

Iphone 如何在TouchsBeging中通过触摸检测选择了哪个UIImageView?,iphone,objective-c,xcode,Iphone,Objective C,Xcode,用户可以使用以下代码按下按钮创建无限数量的UIImageView: - (IBAction) addPicture:(id)sender { imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 45.0, 324, 52.0)]; imageView.tag = a; imageView.image = [UIImage imageNamed:@"Picture.png"]; a = a

用户可以使用以下代码按下按钮创建无限数量的UIImageView:

- (IBAction) addPicture:(id)sender { 
    imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 45.0, 324, 52.0)]; 
    imageView.tag = a;
    imageView.image = [UIImage imageNamed:@"Picture.png"];
    a = a + 1;
    [self.view addSubview:imageView]; 
    [imageView release];
}
所以第一个UIImageView得到标记1,第二个2,依此类推。。。现在,我如何确定用户通过触摸选择了哪个UIImageView?我想,我必须在TouchsStart中这样做,但正如我所说,我不知道如何获得正确的视图

例如,在我的应用程序idea中,用户可以用一个按钮创建图像,然后用触摸键选择一张图片,然后移动它并调整它的大小


感谢您的帮助。

与其使用UIImageView的标记,不如创建自己的UIImageView子类?
您可以覆盖子类中的TouchesBegind方法,以便检测触摸。

然后在子类中,您可以移动或调整子类拥有的图片大小。

SDK相当灵活;实际上有很多方法可以做到这一点:

子类UIImageView,正如tomute已经提到的。然后,您将在每个对象的touchesBegind、touchesMoved和toucheSend方法中响应UIImageView的触摸

如果您的UIImageView没有处理触摸事件,那么它们将被传递到超级视图,您可以通过询问来检查超级视图

if([[touch view]是类:[UIImageView类]]

那么也许

switch ([[touch view] tag])
case (1) {
…
break;
}
case (2) {
…
break;
}
事件将继续“向上”传递,直到链中的某个部分处理了触摸


回顾和回复链。

Sry,但你能再解释一下吗?我对编程非常陌生(4周)在objective-c中也是如此。我如何创建自己的子类并覆盖ToucheSBegind方法?也许一些代码会有帮助。谢谢。这很简单。下面的网站会帮助你。我在pragprog上用该方法尝试过,但不起作用。当我用界面生成器创建UIImageView时,它就起作用了。为什么?