美文网首页
子视图响应父视图的点击事件

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

作者: Moker_C | 来源:发表于2019-11-07 10:44 被阅读0次

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

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

如果返回no则不响应,因此我们可以根据isDescendantOfView:方法来判定一个视图是否在其父视图的视图层中。把我们不想让其响应的子视图拿出来判断一下,如果包含这个子视图就返回no,否则就是yes。

UIGestureRecognizer *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
    tapper.delegate = self;
    [self.view addGestureRecognizer:tapper];

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

相关文章

  • iOS按钮不响应点击事件

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

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

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

  • - (UIView *)hitTest:(CGPoint)poi

    解决超出父视图范围的子视图响应点击/手势等事件时,使用到以下方法 - (UIView *)hitTest:(CGP...

  • UI高级组件

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

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

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

  • 如何快速的调试xib上某按钮点击不响应?

    原因分析: 按钮作为子视图显示在父视图中,但是点击后的响应链在父视图可能不响应。 可能是分辨率不同造成按钮父视图变...

  • iOS UI tips

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

  • 事件的传递和响应

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

  • iOS--坐标转换convertPoint

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

  • iOS事件响应

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

网友评论

      本文标题:子视图响应父视图的点击事件

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