#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];
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一篇搞定事件传递、响应者链条、hitTest和pointInside的使用发生触摸事件后,系统会将该事件加入到一个...
    克鲁德李阅读 4,819评论 0 1
  • 9死亡的概念对于没有经历过的人来说是个模糊的概念,当然,这种经历不一定是自己的,也许是亲朋好友的,也许只是偶尔听说...
    胭脂熊阅读 2,571评论 2 3
  • 读《学会提问》 文:Recycler 50/136.1627 欢迎新朋友,给老朋友请安。 旧文加修改,还是要闭关 ...
    Recycler阅读 2,823评论 0 1
  • 时间过得好快,难怪人人都说时光如箭,一转眼今天已经是2016年的最后一天,再有几个小时就是2017年的大年初一了。...
    实心实意阅读 3,372评论 6 4
  • 突如其来的惊喜,一周年纪念日……
    墨先生_jin阅读 1,157评论 0 0

友情链接更多精彩内容