BRPickerView
BRPickerView 封装的是iOS中常用的选择器组件,主要包括:日期选择器(支持年月日、年月等15种日期样式选择,支持设置星期、至今等)、地址选择器(支持省市区、省市、省三种地区选择)、自定义字符串选择器(支持单列、多列、二级联动、三级联动选择)。支持自定义主题样式,适配深色模式,支持将选择器组件添加到指定容器视图。
Install / Use
/learn @agiapp/BRPickerViewREADME
BRPickerView
BRPickerView 封装的是iOS中常用的选择器组件,主要包括:BRDatePickerView 日期选择器(支持年月日、年月等15种日期样式选择,支持设置星期、至今等)、BRTextPickerView 文本选择器(支持单列、多列、省市区、省市、省、自定义多级联动选择)。支持自定义主题样式,适配深色模式,支持将选择器组件添加到指定容器视图。
⚠️【特别说明】
- 从
V2.9.0版本起,新增了BRTextPickerView组件,用于替代BRAddressPickerView和BRStringPickerView两个旧组件(目前这两个旧组件做了兼容,可以继续使用,后续会废弃掉,建议使用BRTextPickerView新组件进行替代)V2.8.8之前老版本,在iOS18+系统上,会因maskView命名出现崩溃问题,请及时升级到最新版本。- 如果不能找到最新版本,请先执行一下
pod repo update更新本地仓库,使 CocoaPods 能识别最新可用的库版本。
📒 稀土掘金:https://juejin.cn/post/6844903605468676104
效果演示
查看并运行 BRPickerViewDemo.xcodeproj
|
|
|
| :----------------------------------------------------------: | :----------------------------------------------------------: |
| 框架Demo运行效果图1 | 框架Demo运行效果图2 |
安装
CocoaPods
- 在 Podfile 中添加
pod 'BRPickerView' - 执行
pod install或pod update - 导入头文件
#import <BRPickerView.h>
安装说明:
pod 'BRPickerView' :默认是安装全部组件(包含:
BRDatePickerView、BRTextPickerView,和废弃的BRAddressPickerView、BRStringPickerView组件),等价于:pod 'BRPickerView/All'pod 'BRPickerView/Default' :仅安装
BRDatePickerView和BRTextPickerView组件
SPM Supported
- 依次点击 Xcode 的菜单 File > Add Package Dependencies...
- 输出
https://github.com/agiapp/BRPickerView搜索并选择,然后点击 Add Package
手动导入
-
将与
README.md同级目录下的BRPickerView文件夹拽入项目中(注意:删除PrivacyInfo.xcprivacy文件) -
导入头文件
#import "BRPickerView.h"。
系统要求
- iOS 9.0+
- ARC
使用
时间选择器:BRDatePickerView
查看 BRDatePickerView.h 头文件,里面提供了两种使用方式,参见源码。
/// 日期选择器格式
typedef NS_ENUM(NSInteger, BRDatePickerMode) {
// ----- 以下4种是系统样式(兼容国际化日期格式) -----
/** 【yyyy-MM-dd】UIDatePickerModeDate(美式日期:MM-dd-yyyy;英式日期:dd-MM-yyyy)*/
BRDatePickerModeDate,
/** 【yyyy-MM-dd HH:mm】 UIDatePickerModeDateAndTime */
BRDatePickerModeDateAndTime,
/** 【HH:mm】UIDatePickerModeTime */
BRDatePickerModeTime,
/** 【HH:mm】UIDatePickerModeCountDownTimer */
BRDatePickerModeCountDownTimer,
// ----- 以下14种是自定义样式 -----
/** 【yyyy-MM-dd HH:mm:ss】年月日时分秒 */
BRDatePickerModeYMDHMS,
/** 【yyyy-MM-dd HH:mm】年月日时分 */
BRDatePickerModeYMDHM,
/** 【yyyy-MM-dd HH】年月日时 */
BRDatePickerModeYMDH,
/** 【MM-dd HH:mm】月日时分 */
BRDatePickerModeMDHM,
/** 【yyyy-MM-dd】年月日(兼容国际化日期:dd-MM-yyyy)*/
BRDatePickerModeYMD,
/** 【yyyy-MM】年月(兼容国际化日期:MM-yyyy)*/
BRDatePickerModeYM,
/** 【yyyy】年 */
BRDatePickerModeY,
/** 【MM-dd】月日 */
BRDatePickerModeMD,
/** 【HH:mm:ss】时分秒 */
BRDatePickerModeHMS,
/** 【HH:mm】时分 */
BRDatePickerModeHM,
/** 【mm:ss】分秒 */
BRDatePickerModeMS,
/** 【yyyy-qq】年季度 */
BRDatePickerModeYQ,
/** 【yyyy-MM-ww】年月周 */
BRDatePickerModeYMW,
/** 【yyyy-ww】年周 */
BRDatePickerModeYW
};
- 使用示例(参考Demo):
// 1.创建日期选择器
BRDatePickerView *datePickerView = [[BRDatePickerView alloc]init];
// 2.设置属性
datePickerView.pickerMode = BRDatePickerModeYMD;
datePickerView.title = @"选择年月日";
// datePickerView.selectValue = @"2019-10-30";
datePickerView.selectDate = [NSDate br_setYear:2019 month:10 day:30];
datePickerView.minDate = [NSDate br_setYear:1949 month:3 day:12];
datePickerView.maxDate = [NSDate date];
datePickerView.isAutoSelect = YES;
datePickerView.resultBlock = ^(NSDate *selectDate, NSString *selectValue) {
NSLog(@"选择的值:%@", selectValue);
};
// 设置自定义样式
BRPickerStyle *customStyle = [[BRPickerStyle alloc]init];
customStyle.pickerColor = BR_RGB_HEX(0xd9dbdf, 1.0f);
customStyle.pickerTextColor = [UIColor redColor];
customStyle.separatorColor = [UIColor redColor];
datePickerView.pickerStyle = customStyle;
// 3.显示
[datePickerView show];
时间选择器显示类型的效果图(默认样式):
- 以下4种样式是使用 UIDatePicker 类 进行封装的,支持循环滚动
|
|
|
| :----------------------------------------------------------: | :----------------------------------------------------------: |
| 样式1:BRDatePickerModeDate | 样式2:BRDatePickerModeDateAndTime |
| | |
|
|
|
| 样式3:BRDatePickerModeTime | 样式4:BRDatePickerModeCountDownTimer |
- 以下11种样式是使用 UIPickerView 类进行封装的。
|
|
|
| :----------------------------------------------------------: | :----------------------------------------------------------: |
| 样式5:BRDatePickerModeYMDHMS | 样式6:BRDatePickerModeYMDHM |
| | |
|
|
|
| 样式7:BRDatePickerModeYMDH | 样式8:BRDatePickerModeMDHM |
| | |
|
|
|
| 样式9:BRDatePickerModeYMD | 样式10:BRDatePickerModeYM |
| | |
|
|
|
| 样式11:BRDatePickerModeY | 样式12:BRDatePickerModeMD |
| | |
|
|
|
| 样式13:BRDatePickerModeHMS | 样式14:BRDatePickerModeHM |
| | |
|
| |
| 样式15:BRDatePickerModeMS | |
- 其它日期样式
|
|
|
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| 设置显示星期:datePickerView.showWeek = YES; | 设置显示星期:datePickerView.showWeek = YES; |
| | |
|
|
|
| 设置添加至今:datePickerView.addToNow = YES; | 设置显示今天:datePickerView.showToday = YES; |
| | |
|
|
|
| 日期单位显示样式:datePickerView.showUnitType = BRShowUnitTypeOnlyCenter; | 设置选择器中间选中行的背景颜色:selectRowColor |
// 设置选择器中间选中行的样式
BRPickerStyle *customStyle = [[BRPickerStyle alloc]init];
customStyle.selectRowColor = [UIColor blueColor];
customStyle.selectRowTextFont = [UIFont boldSystemFontOfSize:20.0f];
customStyle.selectRowTextColor = [UIColor redColor];
datePickerView.pickerStyle = customStyle;
|
| 