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

2017-10-12  本文已影响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;
}
上一篇 下一篇

猜你喜欢

热点阅读