美文网首页iOS开发
iOS子视图屏蔽父视图手势

iOS子视图屏蔽父视图手势

作者: 智人一千 | 来源:发表于2019-10-25 11:47 被阅读0次

这几天在同事代码上改点东西,增加了一个弹框,弹框是一个密码输入页面,如下图


弹框页面

该页面我未添加任何手势,可当点击背景时键盘收起了!需求是不要求键盘收起;
检查发现父view上添加了点击关闭键盘手势;
由于弹框加父视图上,所以也响应了父视图手势。

- (void)keyboardDown
{
    [self.view endEditing:YES];
}

很显然这种情况应该屏蔽父视图手势,方法很简单,在手势的代理方法里做个限制就行;

#pragma mark - UIGestureRecognizerDelegate
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if ([touch.view isDescendantOfView:self.viewWalletPay]) {//屏蔽父视图在子视图手势
        return NO;
    }

    return YES;
}

注意self.viewWalletPay是弹框对象,上面判断的意思是:添加在子视图对象上的控件屏蔽手势,满足需求。

子视图会响应父视图的手势,添加手势要注意对其他视图的影响,避免产生不必要的bug

相关文章

  • iOS子视图屏蔽父视图手势

    这几天在同事代码上改点东西,增加了一个弹框,弹框是一个密码输入页面,如下图 该页面我未添加任何手势,可当点击背景时...

  • 父视图手势屏蔽子视图

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureR...

  • UIGestureRecognizer学习

    一、父子视图 父视图绑定了手势识别器,子视图因为重叠在父视图内,成为了父视图的一部分,这样点击子视图也会触发识别器...

  • UIView问题点集合

    1.子视图不响应父视图手势方法 思路:在子视图上额外加一个手势,action设置为nil即可

  • UIView

    1.防止子视图响应父视图的手势 2.animate动画 使用frame 使用constraints 3.父视图改变...

  • 手势冲突

    1、在父视图添加UITapGestureRecognizer手势,会导致子视图的UITableView或者UICo...

  • 自定义AlertView手势问题

    自定义AlertView点击背景隐藏时,加入手势,子视图会跟随父视图同时加入手势,点击子视图会隐藏,所以要拦截子视...

  • iOS 阻止子视图响应父视图手势

    实现手势以下代理方法: 参考:https://www.jianshu.com/p/6a31fafa1ca3[htt...

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

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

  • iOS 设置子视图不响应父视图手势

    解决方法是设置代理 UIGestureRecognizerDelegate 然后再设置你的手势 tap代理为sel...

网友评论

    本文标题:iOS子视图屏蔽父视图手势

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