码迷,mamicode.com
首页 > 移动开发 > 详细

ioshittest的用法

时间:2016-01-18 12:14:52      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

昨天,发一个一个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.

ioshittest的用法

标签:

原文地址:http://www.cnblogs.com/wcLT/p/5138704.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!