美文网首页
控件不能响应的情况(iOS 子视图响应父视图的点击事件)

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

作者: 温柔vs先生 | 来源:发表于2017-10-17 10:28 被阅读0次

控件不能响应的情况:

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;
    
}

相关文章

  • iOS--坐标转换convertPoint

    前言 在开发的过程中,不免会遇到子控件超过父视图的情况。都知道,超出父视图的部分是不能响应点击事件,但是总有些情况...

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

    控件不能响应的情况: 1.userInteractionEnabled = NO 2.hidden = YES 3...

  • iOS UI tips

    让超出父视图范围的子视图响应事件,在UIView范围外响应点击 iOS开发之适配iOS11让你的 UI 适配 iO...

  • iOS事件响应

    iOS的事件相应 在日常的开发过程我们经常遇到子视图在父视图外面点击无响应的情况,我们通常用hitTest:wit...

  • swift5.x hitTest 超出父视图响应

    父视图不响应,子视图响应

  • 子视图响应父视图的点击事件

    点击子视图却依然会响应父试图的点击事件发现UITapGestureRecognizer上的一个代理方法: -(BO...

  • iOS按钮不响应点击事件

    如果子视图超出父视图的范围,则按钮无法响应点击事件。解决办法:查看视图层级,查看按钮的所有父视图,找到不在子视图范...

  • UI高级组件

    事件响应 子视图如果绑定了事件即优先级最高 如果没有则触发父视图的事件 子视图接收到了事件后可以放弃事件响应 触发...

  • 给底层视图添加tap手势的穿透问题

    我们给父视图添加一个tap手势,在点击子视图的时候会响应手势. 产生这种问题的原因是子视图不能交互,响应链递归传导...

  • 事件的传递和响应

    响应链 能响应事件的 必须是UIResponser的子类; 响应链是 子视图-> 父视图的. 传递链 首先判断主窗...

网友评论

      本文标题:控件不能响应的情况(iOS 子视图响应父视图的点击事件)

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