LEEAlert的使用
前言
日常开发中 我们经常会用到Alert或ActionSheet来与用户进行交互 , 然而系统提供的Alert其使用方法过于繁琐 , 并且由于iOS系统版本的不同 其样式的细节也各不相同 , 有时应产品要求 我们必须封装一个新的Alert或ActionSheet来满足样式的统一性 , 这无疑又增加了更多的代码编写 .
用最简单的方式来解决一堆繁琐的问题 这是我们每个Coder一生的向往 , 那么下面我为大家介绍一下我的开源库 LEEAlert
LEEAlert
什么是LEEAlert ? 它是一个极大简化了Alert和ActionSheet显示的开源库 , 采用的链式语法封装 轻松将长篇大论的代码缩减至短短几行 , 完美的适配iOS8以上系统版本 , 拥有强大的自定义特性 , 可以完成大部分使用者的个性自定义需求.
下面是一个基本的系统的Alert , 包含了标题和内容以及两个按钮 , 如果是使用UIAlertView 那么加上delegate的方法 基本上都是几十行的代码 才能完成一个Alert的弹出.
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"标题" message:@"内容" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *actionA = [UIAlertAction actionWithTitle:@"确认" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
// 点击事件Block
}];
UIAlertAction *actionB = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
// 点击事件Block
}];
[alertController addAction:actionA];
[alertController addAction:actionB];
[self presentViewController:alertController animated:YES completion:nil];
下面是使用LEEAlert来实现一个和上面相同效果的Alert ( 其实仅一行代码 为了提高可读性 增加了换行 ) :
[LEEAlert alert].config
.LeeTitle(@"标题")
.LeeContent(@"内容")
.LeeCancelAction(@"取消", ^{
// 取消点击事件Block
})
.LeeAction(@"确认", ^{
// 确认点击事件Block
})
.LeeShow();
特性
- 链式语法 结构优雅
- 支持alert类型与actionsheet类型
- 默认样式为Apple风格 可自定义其样式
- 支持自定义标题与内容 可动态调整其样式
- 支持自定义视图添加 同时可设置位置类型等 自定义视图size改变时会自动适应.
- 支持输入框添加 自动处理键盘相关的细节
- 支持屏幕旋转适应 同时可自定义横竖屏最大宽度和高度
- 支持自定义action添加 可动态调整其样式
- 支持内部添加的功能项的间距范围设置等
- 支持圆角设置 支持阴影效果设置
- 支持队列显示 多个同时显示时根据先后顺序排队弹出.
- 支持两种背景样式 1.半透明 (支持自定义透明度比例和颜色) 2.毛玻璃 (支持效果类型)
- 打开和关闭的动画时长均可自定义
- 更多特性未来版本中将不断更新.
使用方法
简单介绍一下完整的组成结构
[LEEAlert alert].config //初始化一个LEEAlert对象开始设置
.LeeTitle(@"标题") //添加的设置 根据你的需要随意增减设置
.XXXXXXXXXX() //其他的设置
.LeeShow(); //最后设置后 在结尾调用 LeeShow() 来显示Alert
ActionSheet与Alert基本一致 不过初始化时要调用actionsheet方法:
[LEEAlert actionsheet].config //调用actionshe方法
.XXXXXXXXXX() //其他的设置
.LeeShow(); //开始显示
如果你感兴趣 更多的使用方法欢迎前往GitHub查看
结语
在我的概念中 开发其中业务逻辑的代码所占的比重是最大的 , 其余的辅助代码则应该尽可能的去简化 , 因为过多的辅助代码会干扰你理解逻辑 , 也会使你的代码显得繁琐复杂 , 所以我们应该尽可能的去简化它们 , 对于一个简简单单弹出Alert功能 就需要长篇大论几十行 , 这是我无法忍受的 ( 一名代码洁癖综合征晚期患者的自述 ) .