3

我们很容易为 a 创建一个 Action UIButton,我们只需Ctrl将 Interface Builder 中画布上的按钮拖到@implementation我们的代码部分(在 Assistant Editor 中)。

但是 aUIImageView呢?我想说,如果用户点击这张图片(这实际上是一个好看的图标),然后做一些事情,但是如何添加 Action,因为Ctrl拖动没有做任何事情?

4

3 回答 3

8
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] 
                                     initWithTarget:self 
                                     action:@selector(actionHandleTapOnImageView)];
[singleTap setNumberOfTapsRequired:1];
originalImageView.userInteractionEnabled = YES;
[originalImageView addGestureRecognizer:singleTap];
[singleTap release];




-(void)actionHandleTapOnImageView
{
NSLog(@"actionHandleTapOnImageView");
}
于 2012-05-21T03:25:26.210 回答
2

您需要在 UIImageView 的父 UIViewController 中处理 touchesBegan 消息。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    
    UITouch *touch = [touches anyObject];
    if ([touch view] == myImageView) {
        [self handleTapOnImageView];  // <-- Handle it!
    }
}

此外,请确保 UIImageView 的“用户交互已启用”属性为 true。

于 2012-05-20T21:14:46.350 回答
1

或者,您实际上可以使用 UIButton 并像设置 UIImageView 一样设置其图像。无需在 UIImageView 上手动编写手势处理程序。

于 2012-05-22T21:36:56.933 回答