控件不能响应的情况(iOS 子视图响应父视图的点击事件)

2017-10-17  本文已影响0人  温柔vs先生

控件不能响应的情况:

1.userInteractionEnabled = NO

2.hidden = YES

3.透明度 alpha 小于等于0.01

4.子视图超出了父视图区域

子视图超出父视图,不响应的原因:因为父视图的pointInside:withEvent:方法返回了NO,就不会遍历子视图了。可以重写pointInside:withEvent:方法解决此问题。


开发中遇到这样的问题:

屏幕快照 2017-11-02 下午8.07.19.png

我在alphabackview上加了touch事件,希望点击蒙版后隐藏当前的view,但是我们发现在点击tableviewbackview 时同样隐藏了当前的view,而这并不是我们想要的,所以就有了 以下的代理方法:


WX20171102-200923@2x.png

这里 方法是touch手势当你点击的时候出发,当返回no的时候不相应我们的时间,只有yes的时候才相应,所以我们只需要把我们不想让相应的view拿出来return No就解决了.

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
    
    if ([touch.view isDescendantOfView:self.tableView_back_view]) {
        return NO;
    }
    
    return YES;
    
}
上一篇 下一篇

猜你喜欢

热点阅读