文档章节

为UIiamgeview 添加UITapGestureRecognizer手势不起作用的问题

SunGiantor
 SunGiantor
发布于 2015/02/27 10:45
字数 323
阅读 8
收藏 0

今天在给头像添加点击效果的时候,点击头像的imageview的响应事件不起作用,代码如下:

// 头像

    self.avatarImageView = [[UIImageView alloc] initWithFrame:CGRectMake(posX, posY, avatarHW, avatarHW)];

    self.avatarImageView.image = [UIImage imageNamed:@"avatar_default_small"];

    [self.contentView addSubview:self.avatarImageView];

    

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(avatarTap:)];

    tapGesture.delegate = self;

    [self.avatarImageView addGestureRecognizer:tapGesture];


响应事件如下:

- (void)avatarTap:(UITapGestureRecognizer *)tap

{

    if (tap.state == UIGestureRecognizerStateEnded)

    {

        NSLog(@"lllllllllllllllllllllllllll");

    }

}


点击头像以后断点始终不进该响应事件方法中。


经过排查发现,该view已经创建,并且头像没有被遮挡。跟进imgeview的sdk中发现:

@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;               // default is NO

userInteractionEnabled属性默认是NO的,所以应该将头像的userInteractionEnabled属性设为YES,开启人机交互。


于是又查看了一下UIView的userInteractionEnabled属性:

@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;  // default is YES. if set to NO, user events (touch, keys) are ignored and removed from the event queue.

UIVIew的userInteractionEnabled属性默认是YES


所以,在处理手势的时候我们应该关注一下交互的控件的userInteractionEnabled属性,因为不同的控件的userInteractionEnabled属性默认值会不同。userInteractionEnabled的值为YES的时候手势才会有效果。


© 著作权归作者所有

共有 人打赏支持
SunGiantor
粉丝 14
博文 79
码字总数 21291
作品 0
长宁
高级程序员
iOS手势识别的简单应用

六种手势 1.手势分类 UITapGestureRecognizer(敲击) 设置numberOfTapsRequired点击的次数 结合代理(BOOL) gestureRecognizer可以选定可点击的区域 UIPinchGestureRecognizer(捏合,用于缩放)...

AppleDream
2016/06/22
22
1
webView添加手势的冲突问题

首先webView 上添加两个手势, // 点击webView 中心区域,从上面和下面弹出两个菜单栏 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector......

zh_iOS
2016/04/28
464
0
UITapGestureRecognizer不响应

新建一个界面GBDatePickerViewController在里面初始化相关数据 - (void) setupCtrl { //背景 self.bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREE......

SunGiantor
2016/07/06
328
0
IOS开发之手势——UIGestureRecognizer 共存

IOS开发之手势——UIGestureRecognizer 共存 在 iPhone 或 iPad 的开发中,除了用 touchesBegan / touchesMoved / touchesEnded 这组方法来控制使用者的手指触控外,也可以用 UIGestureRecog...

长平狐
2012/10/25
115
0
IOS开发之UI手势

点击手势和双击手势 #import "TapViewController.h" @interface TapViewController () @end @implementation TapViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any addi......

鹿微微鹿
2016/04/25
15
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
0
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
0
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
2
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部