iOS一行代码集成悬浮球,代码已开源

之前工作需要在web页面添加一个悬浮球,在各大论坛也没有搜索到相关框架,现将功能封装成SDK来供大家使用.

项目源码, 希望对大家有所帮助

效果展示

gif的画质不是很清晰,一些动画和功能没有展示出来,大家可以下载源码来查看效果.

打开/关闭效果
粘性/边界判断

功能介绍:

  • 悬浮球再打开和关闭的时候会有对应的动画效果, 仿小米手机的悬浮球动画样式.
  • 手指松开悬浮球后,会判断此时悬浮球处于屏幕的左/右侧,并粘在屏幕的两端.
  • 拖动边界判断.拖动悬浮球到导航栏后面或者超出屏幕范围,会自动归位.
  • 静置/拖动状态时悬浮球颜色的改变等等

property

/*****          数据源接口          *****/
/** 子悬浮球 图片名字 数组  */
@property (nonatomic, strong) NSArray *imageNameGroup;

/*****          悬浮球样式接口          *****/
/** 主悬浮球背景颜色  */
@property (nonatomic, strong) UIColor *superBallBackColor;
/** 主悬浮球初始状态是否需要展开  */
@property (nonatomic ,assign) BOOL showFunction;
/** 松开悬浮球后是否需要黏在屏幕的左右两端  */
@property (nonatomic ,assign) BOOL stickToScreen;

/*****          悬浮球点击事件          *****/
/** 打开 */
@property (nonatomic, copy) ShowOrClose show;
/** 关闭 */
@property (nonatomic, copy) ShowOrClose close;

/*****          控件          *****/
/** 功能菜单  */
@property (nonatomic, strong) UIView *functionMenu;
//** 代理 */
@property (nonatomic, weak) id<SuspendBallDelegte> delegate;

集成方法

1.所有页面中都使用悬浮球功能:
在Appdelegate.m里导入#import "SuspendBall.h", 然后在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中调用:

SuspendBall *suspendBall = [SuspendBall suspendBallWithFrame:CGRectMake(0, 64, 50, 50) delegate:nil subBallImageArray:@[@"suspend-back", @"suspend-share", @"full_screen_exit", @"up", @"down"]];

[[UIApplication sharedApplication].keyWindow addSubview:suspendBall];

然后在SuspendBallDelegte的代理方中就可以拿到各个悬浮球的点击事件.

2.部分页面集成悬浮球功能:

SuspendBall *suspendBall = [SuspendBall suspendBallWithFrame:CGRectMake(0, 64, 50, 50) delegate:self subBallImageArray:@[@"suspend-back", @"suspend-share", @"full_screen_exit", @"up", @"down"]];
    [self.view addSubview:suspendBall];

其余同上.

如果各位还有所需的功能或者对此的建议,可以留言与我,谢谢大家.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,964评论 25 709
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,172评论 8 184
  • 昨晚的月亮, 像你从不奢求的多余愿望, 萦绕着周围淡淡的光晕 像极了你祈祷后的镇定自若。 我缺少一轮月亮, 像缺少...
    Karimah苏阅读 348评论 0 0
  • 我们在职场中,你面对的不仅是公司内部的人和事,还要面对外部的人和事。 我们在职场中,不仅要会做事,更要学会怎么做人...
    乐仲雨阅读 224评论 0 0
  • 百里岐山远, 乡关日暮边。 旧时快马向吴间, 回首高堂白发盼殷殷。 浙越山南地, 澄江道未偏。 礼观青冢念椿萱, ...
    木十八先生阅读 186评论 0 1