美文网首页
#05-hitTest练习1#

#05-hitTest练习1#

作者: 冷洪林 | 来源:发表于2016-09-06 23:27 被阅读9次

    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#

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