子控件不能响应点击事件
2016-03-14 23:42
381 查看
以下是我遇到的问题以及解决方式
自定义一个UIView 在UIView上添加子控件 在将这个View赋值给tableViewHeaderView,发现view上的子控件都没发实现点击事件!
分析如下:
1.如果子控件是UIImageView, 默认是不能实现用户交互的,默认userInteractionEnabled = NO;要将设置为userInteractionEnabled = YES;
再实现相应的点击手势
imgBtn1.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgButtonpress1)];
[imgBtn1 addGestureRecognizer:singleTap1];
2.分析子控件是否有有效的事件点击范围!也就是字控件是否有设置好约束(frame),如果子控件的frame超出父控件的frame会导致事件不能正常传递。
我遇到的例子是 是未给父控件设置frame才导致事件不能正常传递。
QCHeaderView *headerView = [[QCHeaderView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 64 - 49)];
self.headerView = headerView;
self.tableView.tableHeaderView = headerView;
自定义一个UIView 在UIView上添加子控件 在将这个View赋值给tableViewHeaderView,发现view上的子控件都没发实现点击事件!
分析如下:
1.如果子控件是UIImageView, 默认是不能实现用户交互的,默认userInteractionEnabled = NO;要将设置为userInteractionEnabled = YES;
再实现相应的点击手势
imgBtn1.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imgButtonpress1)];
[imgBtn1 addGestureRecognizer:singleTap1];
2.分析子控件是否有有效的事件点击范围!也就是字控件是否有设置好约束(frame),如果子控件的frame超出父控件的frame会导致事件不能正常传递。
我遇到的例子是 是未给父控件设置frame才导致事件不能正常传递。
QCHeaderView *headerView = [[QCHeaderView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 64 - 49)];
self.headerView = headerView;
self.tableView.tableHeaderView = headerView;
相关文章推荐
- 使用xshell使用删除出现乱码
- Android 沉浸式状态栏完美实现
- 使用xshell使用删除出现乱码
- hihocoder-1274 自行车架(高维dp)
- BufferedReader类
- javascript 字符串
- 将任意文件隐藏到一张图片内
- 如何用 Latex 写一个漂亮简历
- <LeetCode OJ> 337. House Robber III
- POJ 1423 求阶乘的位数
- VMware安装kali,登陆不成功,重置密码方法
- iOS app版本迭代(iOS中app在iTunes中更新版本流程)
- java语法_3:IO
- github展示项目
- Yii2.0 rules验证规则大全
- STL优先队列
- ava锁机制Synchronized方法简介
- HTML+CSS实战(二)——固定层效果
- 士兵杀敌(一)(锻炼树状数组)
- mysql基本用法