文档章节

iOS 子视图超出父视图范围 无法响应点击事件的解决方办法

RainOrz
 RainOrz
发布于 2017/04/11 13:25
字数 258
阅读 60
收藏 0

如果在cell上添加了一个Tableview,但是tableview的范围超出了cell的frame。 此时你去点击超出部分的内容,发现不会进入点击cell的回调。原因是事件响应断了。当我们点击屏幕的时候,会产生一个点击事件,该事件从下往上一层层传递,当子视图超出父视图时,事件传递会返回nil,就是系统认为没有对象响应这个点击事件,因为你的点击范围不在父视图内。此时需要重写一个方法,返回响应这个事件的对象:如下

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

{

    UIView *view = [super hitTest:point withEvent:event];

    

    if (view == nil) {

        for (UIView *subView in self.subviews) {

            CGPoint myPoint = [subView convertPoint:point fromView:self];

            if (CGRectContainsPoint(subView.bounds, myPoint)) {

                

                return subView;

            }

        }

    }

    

    return view;

}

}

此方法写在父视图上

参考链接:http://blog.csdn.net/shuai_summer/article/details/52221223

http://www.360doc.com/content/15/0501/21/2735774_467330952.shtml

http://blog.csdn.net/jiajiayouba/article/details/23447145

本文转载自:http://blog.csdn.net/shuai_summer/article/details/52221223

共有 人打赏支持
RainOrz
粉丝 8
博文 135
码字总数 89239
作品 0
青浦
程序员
私信 提问
iOS事件传递

前言 无论是Android,还是IOS,都是事件驱动的操作系统,事件是操作系统的灵魂。却很少有人能够理清楚事件在操作系统内部是如何进行传递处理的。这篇文章将深入探讨iOS系统事件,阐述事件是如...

scott2014
2015/09/17
2.4K
1
iOS文档补完计划--UIView

UIView可以说是我们日常工作中接触最多的一个对象、是所有视图控件(不包括视图控制器)的基类。 主要的功能包括视图样式、层级、约束、自动布局、渲染、手势、动画、坐标转换等等。 其中有些东...

kirito_song
2018/09/17
0
0
iOS基础知识整理之事件传递响应链

事件传递响应链 UIResponder 在iOS中,能够响应事件的对象都是UIResponder的子类对象。UIResponder提供了四个点击的回调方法,分别对应用户点击开始、移动、结束和取消,其中只有在程序强制退...

无忌不悔
2018/11/07
0
0
iOS 中的事件传递和响应机制 - 原理篇

注:根据史上最详细的iOS之事件的传递和响应机制-原理篇重新整理(适当删减及补充)。 在 iOS 中,只有继承了 (响应者)类的对象才能接收并处理事件。其公共子类包括 、 和 。 类中提供了以...

一代咩神
01/10
0
0
开发中常见问题集锦

这篇文章是专门用来记录开发中一些常见的BUG以及常用的零碎知识点,我会隔一段时间更新内容 1.重复调用2次loadView和viewDidLoad 最好不要在UIViewController的loadView方法中改变状态栏的可...

长平狐
2013/03/28
174
0

没有更多内容

加载失败,请刷新页面

加载更多

Win下Jenkins-2.138源码编译及填坑笔记

源码编译篇 1、 安装JDK1.8-181,操作系统添加JDK环境变量。Java -version验证一下。 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java9,Maven必须3.5.3以上。 2、 解压Maven3....

编程SHA
7分钟前
0
0
Oracle数据库常用函数 转换函数 日期函数 字符型函数 数值函数

在讲解函数的功能和用法之前,先了解一下dual这个表。 dual这个表是一张只有一个字段,一行记录的表。它是一个虚拟表,用来构成select的语法规则。所以我们接下来会用到这个表来讲解常用函数。...

Sakura20
8分钟前
0
0
Titan 的设计与实现

作者:郑志铨 Titan 是由 PingCAP 研发的一个基于 RocksDB 的高性能单机 key-value 存储引擎,其主要设计灵感来源于 USENIX FAST 2016 上发表的一篇论文 WiscKey。WiscKey 提出了一种高度基于...

TiDB
11分钟前
2
0
ZStack--标签系统

ZStack中的标签不仅帮助用户聚集资源,也帮助控制软件行为。ZStack有一套完整的规范,用以定义标签的类别、形式和用法。除了用户外,插件也可以创建自己的标签,以记录元数据和拓展现有的资源...

ZStack社区版
16分钟前
0
0
解决360浏览器兼容性问题

360浏览器在不同IE版本模式一下、极速模式下、兼容模式下会导致css样式效果出问题,在head头部加上以下信息,可解决该问题: <head><meta http-equiv="x-ua-compatible" content="IE=edge,...

踏破铁鞋无觅处
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部