点击事件穿透效果

2016-11-09  本文已影响384人  伯wen

具体效果图:

具体代码实现如下:

// view触摸事件
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    NSLog(@"%s", __func__);
}

/**
 返回响应事件的控件

 @param point 触摸点 在当前方法调用者自身坐标系上的位置
 @param event 触摸事件

 @return 响应点击事件的控件, nil: 自身及自身子控件都不是响应者, self: 自身是响应者
 */
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    //转移坐标系, 将point的坐标从橘黄色view上转移到按钮上
    CGPoint btnPoint = [self convertPoint:point toView:self.btn];
    
    //判断点是否在按钮上
    if ([self.btn pointInside:btnPoint withEvent:event]) {
        return self.btn;
    }else {
        return [super hitTest:point withEvent:event];
    }
}
上一篇 下一篇

猜你喜欢

热点阅读