UIImageView关联响应方法

来源:互联网 发布:java中的static关键字 编辑:程序博客网 时间:2024/06/14 10:08

UIView类可以响应Touth事件,我们可以给UIView类关联触摸响应的方法,以UIImageView为例子,为UIImageView关联响应的方法

   // 创建一个imageView     CGRect imageRect = CGRectMake(10, 10, width-20, width-20);     UIimageView* imageView = [[UIImageView alloc]initWithFrame:imageRect];        imageView.image = [UIImage imageNamed:imageUrl];        imageView.layer.masksToBounds =YES;        imageView.layer.cornerRadius =60;    //添加关联的方法 shopTap:      UITapGestureRecognizer *Tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(shopTap:)];      Tap.numberOfTapsRequired = 1;//点击一次触发      Tap.numberOfTouchesRequired = 1;//点击需要的手指数量      [imageView addGestureRecognizer:Tap];

但是有时候发现添加了 gesture也不能响应方法,原因是:特殊子类的覆盖
userInteractionEnabled属性默认值为YES,但UIView的一些子类中对该属性进行了覆盖,并将其默认值设置为了NO,其中UIImageView和UILabel就是这样的类 。userInteractionEnabled属性在UIImageView和UILabel的文档中都有简单的描述。在实际的界面开发过程中,我们经常用UIImageView来模拟按钮或其它可以响应用户touch事件的显示区,并通过gesture来为其添加事件响应,因此为了保证事件能正常的接受,我们必须要显示的将UIImageView对象的userInteractionEnabled的值设为YES 。

[imageView setUserInteractionEnabled:YES];

然后就可以响应shopTap方法了

- (void)shopTap:(UITapGestureRecognizer *)tapGesture{    //do something}

userInteractionEnabled属性介绍

http://my.oschina.net/hmj/blog/108002

UIView用户响应事件

http://blog.sina.com.cn/s/blog_6dce99b10101l0qd.html

1 0
原创粉丝点击