我对如何使图像视图的行为方式与按钮相同有疑问。
前任。在我的 .h 文件中
-(IBAction)ClickTheImage:(id)sender;
然后在 .m 文件中。
-(void)ClickTheImage:(id)sender
{
//something to do with image click.
}
但是当我尝试在我的 xib 文件上连接 IBAction 时,当我尝试将它连接到我的 UIImageView 时没有任何反应。关于如何做到这一点的任何想法?
确保您设置userInteractionEnabled
为YES
您的图像视图。然后创建并添加手势识别器,如下所示:
UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ClickTheImage:)];
[self.imageView addGestureRecognizer:tapRecognizer];
self.tapRecognizer.delegate = self;
让你的班级也符合UIGestureRecognizerDelegate
。
你可以反过来创建它。创建一个UIButton并将 ImageView 定义为 UIButton 的背景图像。然后 IBAction 和 UIButton 之间的连接将起作用..
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
或者你为什么要反过来使用它?
只需使用 UITapGestureRecognizer
在 .h 文件上添加 GestureRecognizerDelegate。假设你的 ImageView 是 *img;
UITapGestureRecognizer *TapRecognizer=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ImageHasTouched:)];
[TapRecognizer setDelegate:self];
[img setUserInteractionEnable:YES];
[img addGestureRecognizer:TapRecognizer];
-(void)ImageHasTouched:(TapGestureRecognizer *)Recognizer
{
UIImageView *TouchedImage=(UIImageView *)[[Recognizer self] view];
//Now when ever your image will be touched this method will get fired.
// do what ever you want
}