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

日常开发中经常会出现视图或者控件无法响应的情况,但是搞清楚响应的原理就很容易查找到问题了。
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;//不响应

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容