美文网首页
可以用来验证视图或者控件无法响应的一个方法

可以用来验证视图或者控件无法响应的一个方法

作者: 青火 | 来源:发表于2018-09-27 17:30 被阅读11次

    日常开发中经常会出现视图或者控件无法响应的情况,但是搞清楚响应的原理就很容易查找到问题了。
    1.self.hidden = YES;
    2.self.userInteractionEnabled = NO
    3.self.alpha <= 0.01
    4.屏幕点击点 不包含在你需要响应的视图里面(这里可能是父视图没有frame,或者点击位置超过父视图范围)

    以上4种问题都可以实现下面这个方法来直接检测出来是否响应

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

        if (self.hidden  || !self.userInteractionEnabled || self.alpha <= 0.01) {

            returnnil;//无响应

        }

        if([selfpointInside:pointwithEvent:event]) {

            for(UIView*subViewin[self.subviewsreverseObjectEnumerator]) {

                CGPointconvertedPoint = [subViewconvertPoint:pointfromView:self];

                UIView*hitTestView = [subViewhitTest:convertedPointwithEvent:event];

                if(hitTestView) {

                    returnhitTestView;//找到响应的视图 可以响应

                }

            }

        }

        return nil;//不响应

    }

    相关文章

      网友评论

          本文标题:可以用来验证视图或者控件无法响应的一个方法

          本文链接:https://www.haomeiwen.com/subject/xyxyoftx.html