0

我对如何使图像视图的行为方式与按钮相同有疑问。

前任。在我的 .h 文件中

-(IBAction)ClickTheImage:(id)sender;

然后在 .m 文件中。

-(void)ClickTheImage:(id)sender
{
//something to do with image click.
}

但是当我尝试在我的 xib 文件上连接 IBAction 时,当我尝试将它连接到我的 UIImageView 时没有任何反应。关于如何做到这一点的任何想法?

4

3 回答 3

2

确保您设置userInteractionEnabledYES您的图像视图。然后创建并添加手势识别器,如下所示:

UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ClickTheImage:)];
[self.imageView addGestureRecognizer:tapRecognizer];
self.tapRecognizer.delegate = self;

让你的班级也符合UIGestureRecognizerDelegate

于 2013-08-02T18:11:36.867 回答
0

你可以反过来创建它。创建一个UIButton并将 ImageView 定义为 UIButton 的背景图像。然后 IBAction 和 UIButton 之间的连接将起作用..

[button setBackgroundImage:buttonImage forState:UIControlStateNormal];

或者你为什么要反过来使用它?

于 2013-08-02T17:17:21.097 回答
0

只需使用 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
}
于 2013-08-02T19:13:42.930 回答