#05-hitTest练习1#

05-hitTest练习1

业务逻辑:
    底部一个按钮, 按钮的上面有一个View,遮挡在按钮的上面.
    点击View时, View接收事件,当发现点击的点在按钮的位置时, 让底部的按钮处理事件.
    
实现思路:
    实现View的touchBegain方法,先坚听UIView的点击.
    并去实现UIView的HitTest方法, 在hitTest方法当中通过把当前点转换成按钮所在的坐标系
        CGPoint btnP = [self convertPoint:point toView:self.btn];
    转换过后查看当前点在不在按钮上,如果在按钮上,就直接返回按钮.
    如果有在按钮上,保持系统默认做法.
    
实现代码:
    -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
        判断当前点在不在按钮上.
        把当前点转换成按钮所在的坐标系
        CGPoint btnP = [self convertPoint:point toView:self.btn];
        if ([self.btn pointInside:btnP withEvent:event]) {
            return self.btn;
        }else{
           return [super hitTest:point withEvent:event];
        }
    }

你可能感兴趣的:(#05-hitTest练习1#)