美文网首页
IOS项目中tabbar中间圆形按钮超出tabbar边界(hit

IOS项目中tabbar中间圆形按钮超出tabbar边界(hit

作者: kentchen91 | 来源:发表于2016-06-30 17:41 被阅读566次

    类似于这种效果 利用 hitTest 机制

    Hit-Test 机制

    当用户触摸(Touch)屏幕进行交互时,系统首先要找到响应者(Responder)。系统检测到手指触摸(Touch)操作时,将Touch 以UIEvent的方式加入UIApplication事件队列中。UIApplication从事件队列中取出最新的触摸事件进行分发传递到UIWindow进行处理。UIWindow 会通过hitTest:withEvent:方法寻找触碰点所在的视图,这个过程称之为hit-test view。

    hitTest 的顺序如下

    UIApplication->UIWindow->RootView->···->subview

    在顶级视图(Root View)上调用pointInside:withEvent:方法判断触摸点是否在当前视图内;

    如果返回NO,那么hitTest:withEvent:返回nil;

    如果返回YES,那么它会向当前视图的所有子视图发送hitTest:withEvent:消息,所有子视图的遍历顺序是从最顶层视图一直到到最底层视图,即从subviews数组的末尾向前遍历,直到有子视图返回非空对象或者全部子视图遍历完毕。

    https://github.com/kentchen1991/CSHTabbarTest  

    代码写的比较乱 只是做一个个人笔记,有要参考的 自行优化

    相关文章

      网友评论

          本文标题:IOS项目中tabbar中间圆形按钮超出tabbar边界(hit

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