博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ioshittest的用法
阅读量:4883 次
发布时间:2019-06-11

本文共 920 字,大约阅读时间需要 3 分钟。

昨天,发一个一个BUG。应用了一个第三方控件。一切好,效果出来符合要求。

准备收工时,再次进行测试,发现一个很严重后果的BUG,view上的按钮事件都没了。

经过各种测试,发现就是新引入的第三方控件引起。

经过注释代码,进行单步调试。发现

(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event 的用法引起的,看到这里恍然大悟,这个方法注释掉,一切正常。

hitTest的作用:当在一个view上添加一个屏蔽罩,但又不影响对下面view的操作,也就是可以透过屏蔽罩对下面的view进行操作,这个函数就很好用了。

hitTest的用法:将下面的函数添加到UIView的子类中,也就是屏蔽罩类中即可。

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

{

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

    if (hitView == self)

    {

        return nil;

    }

    else 

    {

        return hitView;

    }

}

第三方控件代码里将superVIew给返回了,造成的问题。

现在当是复习下,以前的知识吧,写个东西,记录一下。

view超过父级View可以显示,但是不能处理事件。

重要事件说三遍:

view超过父级View可以显示,但是不能处理事件,-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event 

view超过父级View可以显示,但是不能处理事件,-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event 

view超过父级View可以显示,但是不能处理事件,-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event 

都是可以引起问题的地方,还有就是事件要进行注册到对应的target.

转载于:https://www.cnblogs.com/wcLT/p/5138704.html

你可能感兴趣的文章
数据结构之表(1)顺序表的实现
查看>>
5. git 过滤,让某文件夹里无法提交新添加的文件
查看>>
使用python脚本的3D引擎Panda3d
查看>>
「成长指南」大佬是怎样炼成的
查看>>
CentOS VMware 下SSH配置方法详解
查看>>
【DNN 系列】 添加模块后不显示
查看>>
Java Spring MVC 错误 及 常见问题 总结
查看>>
记一个数据库游标的实例
查看>>
netcore2.0 ORM框架中如何配置自定义的主外键加载
查看>>
基础练习 十进制转十六进制
查看>>
156 合并区间
查看>>
C# Base64加密解密
查看>>
HDU 1255 覆盖的面积 线段树+扫描线
查看>>
关联映射 ---- Hibernate之多对多关系
查看>>
System.ArgumentException: 另一个SqlParameterCollection中已包含SqlParameter。
查看>>
【1】自定义WindowsForm分页控件使用【共两篇】
查看>>
堆的插入删除
查看>>
期末大作业
查看>>
[转载] C++ 类中的类成员变量怎么调用带参数的构造函数来初始化?
查看>>
java操作文件流对象
查看>>