zoukankan      html  css  js  c++  java
  • ioshittest的用法

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

  • 相关阅读:
    没有插件的sublime编辑器是没有灵魂的
    原生JS简单的无缝自动轮播
    自学前端的日子,记录我的秃头之旅
    简洁快速的数组去重
    最困难的是带着自己的选择生活下去
    css画图那些事
    css3画图那些事(三角形、圆形、梯形等)
    SVN那些事
    关于使用JQ scrollTop方法进行滚动定位
    linux下mysql出现Access denied for user 'root'@'localhost' (using password: YES)解决方法
  • 原文地址:https://www.cnblogs.com/wcLT/p/5138704.html
Copyright © 2011-2022 走看看