iOS一行代码集成悬浮球,代码已开源
2017-01-10 本文已影响1558人
Pusswzy
之前工作需要在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];
其余同上.
如果各位还有所需的功能或者对此的建议,可以留言与我,谢谢大家.