UIImageView是不能够响应点击事件的,在开发过程中我们需要经常对头像等添加点击事件,上网搜索一番后发现有如下两个方法:
1.找到点击图片Event,添加事件处理函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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手势
1
2
3
4
5
6
7
8
9
|
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上添加点击事件处理函数
1
2
3
4
5
6
7
|
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