美文网首页
iOS中子视图超出父视图的按钮点击事件响应处理

iOS中子视图超出父视图的按钮点击事件响应处理

作者: 小随记 | 来源:发表于2017-10-12 15:51 被阅读0次

    在iOS开发中会遇到一些设计样式,需要把按钮一部分悬空在父视图的上面,但是当我们点击该按钮时,超出了父视图的悬空部分不会响应该按钮的点击事件。

    63451D42-A48B-4BAF-8FE4-9C397D2069D5.png

    如图所示 点击超出父视图(白色)的头像区域有触发点击事件。
    在自定义的UIView视图类中 重写如下代码,这样我们的点击事件就有反应了。

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
        UIView *view = [super hitTest:point withEvent:event];
        if (view == nil) {
            //将坐标由当前视图发送到 指定视图 fromView是无法响应的范围小父视图
            CGPoint stationPoint = [_headImageView convertPoint:point fromView:self];
            if (CGRectContainsPoint(_headImageView.bounds, stationPoint))
            {
                view = _headImageView;
            }
        }
        return view;
    }
    

    相关文章

      网友评论

          本文标题:iOS中子视图超出父视图的按钮点击事件响应处理

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