开发过iOS的同学都知道,我们可以在storyboard中通过拉线IBAction为按钮、TableViewCell等添加响应事件,或者在代码中执行view对象的一个addTarget函数来进行事件响应。但是如果是一个UIImageView呢?我们发现无法在storyboard中拖拽出一条线,在代码中也没有addTarget方法,那么,如何给ImageView或者Label这类本身没有响应事件的控件增加监听呢?
答案是手势操作。我们设置一个点击tap的手势,并把该手势添加到View上。那么此时这个View就可以监听这个手势,当这个手势发生时,就会执行响应的操作。我通过代码来为大家实现一下,通过监听一个图片的点击事件。
代码实现如下:
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *image;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//初始化一个Tap的点击手势,并指明点击后执行的函数为clickImage;
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clickImage)];
//把手势添加到View上面;
[self.image addGestureRecognizer:tapGesture];
}
//点击图片后执行的操作;