Objective c iOS中图像上的事件

Objective c iOS中图像上的事件,objective-c,Objective C,我对iOS开发相当陌生,所以这似乎是一个愚蠢的问题。。在我的xib文件中,我拍摄了一个UIImageView,当加载页面时,它将显示一个图像。但当用户点击图像时,我希望加载下一个视图。。但我不能这样做,因为我们不能为UIImage视图提供一个不是目标操作机制的委托。。在很多地方,我找到了一个解决办法。。使用按钮,然后在其上放置图像,然后使用。。但是我想要第一种工作方式。。请帮助..使用UITapGestureRecognitizer,不要忘记设置imageView.userInteraction

我对iOS开发相当陌生,所以这似乎是一个愚蠢的问题。。在我的xib文件中,我拍摄了一个UIImageView,当加载页面时,它将显示一个图像。但当用户点击图像时,我希望加载下一个视图。。但我不能这样做,因为我们不能为UIImage视图提供一个不是目标操作机制的委托。。在很多地方,我找到了一个解决办法。。使用按钮,然后在其上放置图像,然后使用。。但是我想要第一种工作方式。。请帮助..

使用UITapGestureRecognitizer,不要忘记设置
imageView.userInteractionEnabled=YES因为默认情况下图像没有用户交互

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
[singleTap setNumberOfTapsRequired:1];

[imageView addGestureRecognizer:singleTap];


-(void)handleSingleTap:(id)sender {
// push you view here
}
(或者)如果你愿意的话

拍摄带有背景图像的按钮


不使用UIImageView,您可以使用UIButton

  UIButton *myBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [myBtn setBackgroundImage:[UIImage imageNamed:@"your_image_Name"] forState:UIControlStateNormal];
    [myBtn setBackgroundImage:[UIImage @"your_image_Name"] forState:UIControlStateHighlighted];
    [myBtn addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
还可以编写按钮操作:

-(void)buttonAction:(id)sender {
// Do whatever you want
}

对于XIB,只需使用UIButton而不是UIImageView,并根据需要设置正常状态和高亮显示状态的背景图像。Rest您可以从XIB管理按钮的操作。

您还可以在
UIImageView
上添加一个完全透明的
UIButton
。。。由于每个元素都有清晰的语义,因此应首选此选项。

在图像视图中添加一个点击手势识别器(并确保将图像视图的userInteractionEnabled设置为“是”,默认情况下为“否”)。
-(void)buttonAction:(id)sender {
// Do whatever you want
}