CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.
TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Feb 2018 |
Maintained by pairmu.
一个轻量级的简单到爆炸的悬浮球(详细使用可参见Demo)
初始化
MISFloatingBall *floatingBall = [[MISFloatingBall alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];// 全局作用
MISFloatingBall *floatingBall = [[MISFloatingBall alloc] initWithFrame:CGRectMake(100, 100, 100, 100) inSpecifiedView:self.view];// 指定View生效
显示和隐藏
[floatingBall visible]; // 显示
[floatingBall disVisible]; // 隐藏
生成后是否自动靠边
floatingBall.autoCloseEdge = YES;
更改悬浮球的靠边策略(默认是上下左右都可以靠,默认时候的逻辑是和系统的assistiveTouch相同,接触到底部或顶部一定距离之后靠近上下边缘)
floatingBall.edgePolicy = MISFloatingBallEdgePolicyLeftRight;
设置悬浮球显示的内容(内部自动居中)
// 设置图片
[floatingBall setContent:[UIImage imageNamed:@"apple"] contentType:MISFloatingBallContentTypeImage];
// 设置文字
[floatingBall setContent:@"我是文字" contentType:MISFloatingBallContentTypeText];
如果想要添加一个自定义的视图到悬浮球中
// 设置一个自定义的视图
MISCustomButton *button = [[MISCustomButton alloc] initWithFrame:CGRectMake(0, 0, 80, 80)];
button.titleLabel.textAlignment = NSTextAlignmentCenter;
button.imageSize = CGSizeMake(44, 44);
button.titleLabel.font = [UIFont systemFontOfSize:16.0f];
button.backgroundColor = [UIColor redColor];
[button setImage:[UIImage imageNamed:@"apple"] forState:UIControlStateNormal];
[button setTitle:@"一个图片" forState:UIControlStateNormal];
// 设置自定义视图
[floatingBall setContent:button contentType:MISFloatingBallContentTypeCustomView];
当在autoCloseEdge为YES的时候,设置一段间隔后自动缩进边缘
// 缩进的主要参数
UIKIT_STATIC_INLINE MISEdgeRetractConfig MISEdgeOffsetConfigMake(CGPoint edgeRetractOffset, CGFloat edgeRetractAlpha) {
MISEdgeRetractConfig config = {edgeRetractOffset, edgeRetractAlpha};
return config;
}
// 设置缩进
// 缩进时候如果靠的是左右边缘则x缩进20,如果上下则y缩进30,并且缩进后悬浮球透明度渐变为0.7f
[floatingBall autoEdgeRetractDuration:3.0f edgeRetractConfigHander:^MISEdgeRetractConfig{
return MISEdgeOffsetConfigMake(CGPointMake(20, 30), 0.7f);
}];
悬浮球的点击
__block typeof(floating) blockBall = floatingBall;
[floating setClickHander:^{
// 主要可以实现悬浮球点击之后的事件处理
[blockBall disVisible];
}];
// 或者设置代理,在实现代理方法,获取点击事件
- (void)didClickFloatingBall:(MISFloatingBall *)floatingBall {
// 悬浮球点击
}
最低支持 iOS 8.0
和 Xcode 8.0
。
如果存在 Bug 或有重大问题欢迎 Issue me,希望可以一起共同学习进步