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功能 就需要长篇大论几十行 , 这是我无法忍受的 ( 一名代码洁癖综合征晚期患者的自述 ) .

你可能感兴趣的:(LEEAlert的使用)