通过实例讲解,如图(三个深灰色按钮处于同一个contentView中):

悬浮的三个按钮下方有一个可以点击的灰色区域,但是点击按钮之间的透明区域,

这三个按钮的contentView会响应这个点击事件,这时候需要让这个contentView不响应这个点击事件。

解决方法如下(将此方法增加到这个contentView类中即可):

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
UIView *hitView = [super hitTest:point withEvent:event];
if(hitView == self){
return nil;
}
return hitView;
}

查看这个方法相关的描述,如下:

返回值:

返回 farthest descendent (最后一级子视图) ,在这个例子里面返回的也就是悬浮的按钮。

返回 nil,就可以让这个contentView无视这个点击事件,也就将这个点击事件传了出去。


Ficow原创,转载请注明出处:http://www.cnblogs.com/ficow/p/5936288.html

广大喵 Ficow Shen

iOS 使点击事件穿透透明的UIView的更多相关文章

  1. IOS 多个ImageView图片层叠透明区域点击事件穿透

    经常用到多个透明图片层叠,但又需要获取不同图片的点击事件,本文实现图片透明区域穿透点击事件 实现人体各个部位点击 - (BOOL) pointInside:(CGPoint)point withEve ...

  2. iOS Safari 中点击事件失效的解决办法

    问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. ...

  3. 【javascript】iOS Safari 中点击事件失效的解决办法

    问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. ...

  4. Unity3D开发之NGUI点击事件穿透响应处理

    http://www.xuebuyuan.com/1936292.html 在使用NGUI 开发2D项目的时候,发现了一个问题,就是如果点出一个菜单,然后点击菜单上面的按钮的时候就会使得按钮下面的物品 ...

  5. Android学习总结——DrawerLayout 侧滑栏点击事件穿透

    使用DrawerLayout实现侧滑栏功能时,点击侧滑栏空白处时,主界面会获得事件. 解决方法:侧滑栏布局添加 android:clickable="true"

  6. 解决移动端点击穿透问题_h5实现移动端点击事件穿透的多种解决方案

    移动端点透点透现象出现的场景: 当A/B两个层上下z轴重叠,上层的A点击后消失或移开(这一点很重要),并且B元素本身有默认click事件(如a标签)或绑定了click事件.在这种情况下,点击A/B重叠 ...

  7. Swift UITableView嵌套UICollectionView点击事件冲突(点击事件穿透)

    不管是啥都响应tableviewcell class JYShopCertificationCell: UITableViewCell { override func hitTest(_ point: ...

  8. iOS小技巧 - 如何使UIView可以绑定点击事件

    让我们这次直接进入正题,有时候我们想做以下这种界面: 目前我就想到三种方案: 做一个tableview,然后组织cell的界面如上图所示 做一个button子类,使得button的界面能如上图所示 做 ...

  9. Fragment 点击事件的穿透和重叠bug

    从A fragment跳转到B fragment ,为了返回时不从新加载A fragment内容,通常使用add方法来将a添加到后退栈. 在B Fragment 中点击一个空白区域,如果A Fragm ...

随机推荐

  1. 关于PHP的引用赋值

    应用赋值,可以改变之前的变量的值! 可以间接的做到,在变量未申明的时候!就可以获取它的值!

  2. tar 解压bz2报错 Cannot exec: No such file or directory

    tar: bzip2: Cannot exec: No such file or directorytar: Error is not recoverable: exiting now 需要安装bzi ...

  3. 常用快捷键: From Eclipse to Android Studio

    Eclipse: ctrl+shift+L查看所有快捷键 alt+shift+r 重命名 ctrl+shift+F 格式化代码 alt+shift+s  添加未实现方法 alt+/ 代码助手提示 ct ...

  4. RBAC权限模型

    RBAC 现在大多数的管理系统都是基于RBAC开发的组织机构权限框架.所有的操作都是基于角色(Role)来完成的.我们先从需求的角度出发,来了解关于系统权限管理. 用户A和用户B都属于研发部,我们可以 ...

  5. xml编辑器

    cstring转cha型方法在mfc中用过可行 int CstringToch(CString str, char *ch) { assert(ch); memset(ch, 0, sizeof(ch ...

  6. Springmvc的跳转方式

    跳转到其他controller: 返回类型是String: return "forward:/log/home.action";  映射路径 跳转到本类Controller的某一个 ...

  7. 【Oracle】Oracle日期格式详解

    本文章没有经过验证,纯属使用CV大法.感谢原创的大牛. to_date("要转换的字符串","转换的格式")   两个参数的格式必须匹配,否则会报错. 即按照第 ...

  8. ajax待总结项

    1.get与post请求的区别 get请求调用send方法发送数据时,会忽略传入的数据 2.post请求的三种方式区别 1.form表单 2.ajax 3.ajax + FormData 表格绘制,代 ...

  9. selenium测试框架篇,页面对象和元素对象的管理

    前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让 ...

  10. Android 通用流行框架

    原文出处: http://android.jobbole.com/83028/ 1. 缓存 名称 描述 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 名称 描述 Andro ...