拖曳视图,大部分的项目中都会用到,QQ视频、微信视频、斗鱼TV、虎牙直播等APP都具有这样的需求。
本人做项目期间产品也有这个悬浮视图的需求,于是乎上网找了一些demo,都是touch事件里面稍微处理一下位置,效果达到了,但是没有高度封装,没有提供强大的API,不利于后续的拓展。所以本人自己封装了一个开源库WMDragView,广告词为:WMDragView致力于让任意View都可以自由悬浮拖曳。目前已经star404,而且很多小伙伴已经开始使用在项目中了。
这里再回答曾经有小伙伴提出的疑问:既然致力于让所有view都能悬浮拖曳,那么为什么不用category反而用继承?
答:并不是所有的view都有这个需求,所有的view也不想拥有这些侵染性扰乱开发者的属性,毕竟拖曳视图只用于某些特定的场景。WMDragView虽然致力于让任意的view都有能力去拖曳,但是他不会侵染的项目中的所有view,用继承的方式反而可选择性高一点,这个选择的权利我交给在座的各位大屌。
首先,上来依然把Demo地址发出来,送佛送到西,木有Demo的文章就是耍流氓!!!
https://github.com/zhengwenming/WMDragView.git
其次,API简介和功能回调看图片
1、功能强大的API
2、功能完善的事件回调
3、GIF效果图
WMDragView:用法和API
1、把需要拖曳view的父类从原本继承UIView,改成继承WMDragView就OK了。
2、dragEnable=YES,可拖曳
dragEnable=NO,不可拖曳
3、freeRect可以任意设置活动范围,默认为活动范围为父视图大小frame,
4、回调block
点击的回调 clickDragViewBlock
开始拖动的回调 beginDragBlock
拖动中回调 duringDragBlock
结束拖动的回调 endDragBlock
5、isKeepBounds是不是又自动黏贴边界效果
isKeepBounds = YES,自动黏贴边界,而且是最近的边界
isKeepBounds = NO, 不会黏贴在边界,它是free(自由)状态,跟随手指到任意位置,但是也不可以拖出规定的范围
6、可以设置网络图片
7、可以自定义view加到dragView中,比如一个视频,一个自定义按钮等等。
8、内部懒加载一个button和imageView,方便开发者使用
最后欢迎大家关注文明的iOS开发公众号:
方式1、搜索:“iOS开发by文明”
方式2、扫描下方二维码