一、简单说一下Demo实现的功能需求:
1、类似于iPhone的AssistiveTouch的功能小球;
2、可随手势拖动;
3、拖动手势结束后,有侧边吸附效果;
4、单击后动画展开,弹出其它功能按键;
5、可全局控制小球显示和隐藏的状态。
二、说一下开发当中遇到的关键点:
1、因为浮层需要置顶,不能影响其它视图的使用,且会在任意位置呼出,因此考虑使用UIWindow进行实现;
2、UIWindow的使用:
1> 想要置顶效果就需要设置UIWindow的windowLevel,我是用的是UIWindowLevelAlert + 1,也就是比系统的Alert弹框级别高;
2> 超出window的frame的子View是无法通过重写父View的 hitTest: 方法进行点击事件拦截的,所以我在实现弹出效果时,动态的改变了window的frame;
三、实现截图:
四、源码地址:
https://git.oschina.net/SuperChaoChao/ToolBallDemo.git