SPAlertController:风格近似微信原生的提醒对话框
一、项目简介
SPAlertController是一个提醒对话框项目,它的风格和微信原生几乎零误差。该项目具有多种功能特性,例如采用VFL布局,从3.0版本开始核心控件为UIStackView,并且有诸多针对不同系统版本和需求的功能优化。它在GitHub上开源,拥有430颗星,68个分支,采用MIT license许可。
二、核心技术
- 布局技术:采用VFL布局,3.0版本起以UIStackView为核心控件,能够很好地实现对话框的布局效果。
- 适配技术:全面适配iPhoneX,iPhoneXR,iPhoneXS,iPhoneXS MAX等设备,并且在4.0.0版本适配深色模式。
- 动画设置:创建SPAlertController时有两种方式,第二种方式多了animationType参数可设置弹出动画,不同的preferredStyle默认动画不同,如SPAlertControllerStyleActionSheet样式默认从底部弹出,SPAlertControllerStyleAlert样式默认从中间弹出。
- 自定义视图:可自定义对话框的头部、整个对话框以及action部分,对于自定义视图的大小处理有一套详细的规则,包括自动布局和非自动布局下的不同处理方式。
三、实践案例
- CocoaPods使用示例:
-在CocoaPods中使用时,在
platform:ios,’9.0’的环境下,在target’MyApp’中通过pod ‘SPAlertController’,’~>4.0.0’即可引入该项目。 - 创建和配置示例:
-创建SPAlertController示例:
-如
SPAlertControlleralert = [SPAlertController alertControllerWithTitle:@”我是主标题” message:@”我是副标题” preferredStyle:SPAlertControllerStyleActionSheet];-创建SPAlertAction示例: -像SPAlertActionaction1 = [SPAlertAction actionWithTitle:@”Default” style:SPAlertActionStyleDefault handler:^(SPAlertAction _Nonnull action){}];等创建不同样式的action,并可添加到alert中,如[alert addAction:action1];。 -还有对SPAlertController的各种属性的配置,如设置主标题、副标题、标题颜色、字体、对齐方式等,以及对action的属性配置,如标题、富文本标题、图片、间距等。
四、项目总结
SPAlertController是一个功能丰富、在提醒对话框方面表现出色且不断更新优化的项目。它在布局、适配、动画和自定义等多方面都有很好的实现。如果你对这个项目有任何想法或者建议,欢迎在下方留言参与讨论。