超过父控件的部分不能响应事件怎么办
##前言 ###一个朋友问我过一个这样的问题,他在底部的tabBar上面加了一个控件,这个控件超出了底部的tabBar,超出的部分无法响应事件,怎么办?
###相信大家应该明白为什么不能响应事件的原因,就是响应者链条么,你父控件不能响应,系统就认为你也不能响应,具体的内容请看这篇博客
我这里自定义了一个tabBar,在里面重写了 -(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
方法,这个方法主要是用来检查该触摸点是否在该控件所在的矩形区域内,你只要在这个方法里让超出的部分返回为YES,就可以了.
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
if ([super pointInside:point withEvent:event]) {return [super pointInside:point withEvent:event];
}else{CGRect rect = [self convertRect:self.plusButton.frame toView:self];return CGRectContainsPoint(rect, point);
}
}
复制代码
说明:如果([super pointInside:point withEvent:event]
方法返回的是YES,我不做处理,只有当这个方法返回为NO的时候,才去判断是否在那个加号按钮的范围内,其中用到了frame转换,在按钮的范围内返回为YES,其他的返回为NO.
其他更详细的代码在这里
超过父控件的部分不能响应事件怎么办相关推荐
- 解决ImageView超出父控件(或屏幕边界)时,图片挤压问题
一.需求 在屏幕边缘显示一张图片,超出屏幕宽度时,只显示图片的左边部分,并且不被挤压,其余部分剪切.但我在实际开发中,踩了个坑,这里做个记录,下面通过图片直观了解一下情况: 理想 现实 目前可以确定, ...
- android 控件覆盖关系,安卓子控件抢占父控件点击事件或者焦点问题
开发中很常见的一个问题,项目中的lListview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现 ...
- 请求所有父控件及祖宗控件不要拦截事件
//事件分发//dispatchTouchEvent->onInterceptTouchEvent->onTouchEvent@Overridepublic boolean dispatc ...
- 子控件的鼠标消息怎么传递给父控件?
需求是在父widget上摆一个子widget后,当click子widget时:不进入到子widget的相关事件处理函数中,而是进入到父widget的对应事件处理函数中.比如进入到mousePressE ...
- 超出父控件怎么才能点击
首先:我们先总结一下控件不能交互的原因有哪些? // 1.控件的用户交互被关闭了! -> userInteractionEnable = NO[用户交互]!// 2.控件隐藏了! hidden ...
- vs2005的webbrowser控件如何接收鼠标事件
这个问题来自论坛提问,vs2005的webbrowser控件如何接收鼠标事件,很多事情其实自己动动脑子就有办法的.主要是3步,给dom对象插入js脚本去响应鼠标-〉通过url跳转去通知webbrows ...
- Qt安装事件过滤器、过滤子控件事件、截获控件按键、鼠标事件
Qt安装事件过滤器.过滤子控件事件.截获控件按键.鼠标事件 Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理. 假设我们有一个C ...
- android 父控件的背景_android控件的属性
android控件的属性 本节描述android空间的位置,内容等相关属性及属性的含义 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 ( ...
- 将鼠标消息发送给指定的父控件_勾子
以下类通过挂载勾子原理,实现将子控件鼠标消息发送给父控件. 调用: MousePreview mp=new MousePreview(pControl); //pControl为父控件 //启用勾子 ...
- WPF控件自定义点击事件
WPF部分控件没有点击事件,点击,指的是鼠标按下,然后抬起,形成一次点击,这里写了个类,实现了点击事件如下 class ClickEventAction{static List<ClickEve ...
最新文章
- React 创建组件 使用组件 2
- 【Python基础】Jupyter Notebook最常用的五大配置技巧
- K8S部署hazelcast
- python序列5位置_Python序列构成的数组
- 独眼巨人反应组织了Java 8库的寒武纪爆发
- mysql 协议的退出命令包及解析
- rust怎么关阳光指令_我家也有庭院多好,伸缩阳光房装上,能休闲能当车库,还不算违建...
- 使用VS2010开发一个简单的自定义字段类型
- ps画画模糊笔刷_如何用笔刷做出大神级效果?1000多款PS插画笔刷,简直就是你想要的神器...
- 如何将一个完整项目推到码云_「码云下载项目」如何通过Git将本地项目提交到码云或GitHub...
- 「面试必背」多线程面试题(快收藏)
- 用python实现模拟轮盘抽奖游戏
- tp5 上传路径反斜杠的问题 ,反斜杠json_decode函数输出出错的
- 如何将ai转换为html,如何用AI输出html网页?AI画的图片-存储为web及所有格式-放到网页有锯齿?...
- bttray.exe
- 小米路由器 安装mysql_小米路由器安装和设置方法(图文教程)
- 人工智能方面会议评分与简介(转)
- 图片报道:2008年12月4日夜,暴风雪突袭烟台(上)
- Esx host补丁更新
- java获取本周第一天的日期