UIImageView是不能够响应点击事件的,在开发过程中我们需要经常对头像等添加点击事件,上网搜索一番后发现有如下两个方法:
1.找到点击图片Event,添加事件处理函数
UIImageView.userInteractionEnabled = YES; - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [[event allTouches] anyObject]; if ([touch view] != UIImageView) { //do some method..... } }
2.为UIImageView添加Tap手势
UIImageView.userInteractionEnabled = YES; UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; [UIImageView addGestureRecognizer:singleTap]; - (void)handleSingleTap:(UIGestureRecognizer *)gestureRecognizer { //do something.... }
3.在UIImageView外层套一个UIView,在外层UIView上添加点击事件处理函数
UIView*view = [[UIControl alloc] initWithFrame:CGRectMake(50,200,150,150)] ; view.backgroundColor = [UIColor clearColor]; [(UIControl *)view addTarget:self action:@selector(xxx) forControlEvents:UIControlEventTouchUpInside]; UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"a.gif"]]; imageView.frame = CGRectMake(0, 0, view.bounds.size.width, view.bounds.size.height); [view addSubview:imageView]; [self.view addSubview:view];
ref:http://blog.csdn.net/iorchid/article/details/6398102#
http://www.cocoachina.com/bbs/read.php?tid-66270-page-1.html