SkillAgentSearch skills...

BRPickerView

BRPickerView 封装的是iOS中常用的选择器组件,主要包括:日期选择器(支持年月日、年月等15种日期样式选择,支持设置星期、至今等)、地址选择器(支持省市区、省市、省三种地区选择)、自定义字符串选择器(支持单列、多列、二级联动、三级联动选择)。支持自定义主题样式,适配深色模式,支持将选择器组件添加到指定容器视图。

Install / Use

/learn @agiapp/BRPickerView
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

BRPickerView

BRPickerView 封装的是iOS中常用的选择器组件,主要包括:BRDatePickerView 日期选择器(支持年月日、年月等15种日期样式选择,支持设置星期、至今等)、BRTextPickerView 文本选择器(支持单列、多列、省市区、省市、省、自定义多级联动选择)。支持自定义主题样式,适配深色模式,支持将选择器组件添加到指定容器视图。

⚠️【特别说明】

  • V2.9.0 版本起,新增了BRTextPickerView 组件,用于替代 BRAddressPickerViewBRStringPickerView 两个旧组件(目前这两个旧组件做了兼容,可以继续使用,后续会废弃掉,建议使用 BRTextPickerView 新组件进行替代)
  • V2.8.8之前老版本,在iOS18+系统上,会因 maskView 命名出现崩溃问题,请及时升级到最新版本。
  • 如果不能找到最新版本,请先执行一下 pod repo update 更新本地仓库,使 CocoaPods 能识别最新可用的库版本。

📒 稀土掘金:https://juejin.cn/post/6844903605468676104

效果演示

查看并运行 BRPickerViewDemo.xcodeproj

| 效果图1 | 效果图2 | | :----------------------------------------------------------: | :----------------------------------------------------------: | | 框架Demo运行效果图1 | 框架Demo运行效果图2 |

安装

CocoaPods

  1. 在 Podfile 中添加 pod 'BRPickerView'
  2. 执行 pod installpod update
  3. 导入头文件 #import <BRPickerView.h>

安装说明:

pod 'BRPickerView' :默认是安装全部组件(包含:BRDatePickerViewBRTextPickerView ,和废弃的BRAddressPickerViewBRStringPickerView 组件),等价于:pod 'BRPickerView/All'

pod 'BRPickerView/Default' :仅安装BRDatePickerViewBRTextPickerView 组件

SPM Supported

  1. 依次点击 Xcode 的菜单 File > Add Package Dependencies...
  2. 输出 https://github.com/agiapp/BRPickerView搜索并选择,然后点击 Add Package

手动导入

  1. 将与 README.md 同级目录下的 BRPickerView 文件夹拽入项目中(注意:删除PrivacyInfo.xcprivacy文件)

  2. 导入头文件 #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:BRDatePickerModeTime | 样式2:BRDatePickerModeDate | | :----------------------------------------------------------: | :----------------------------------------------------------: | | 样式1:BRDatePickerModeDate | 样式2:BRDatePickerModeDateAndTime | | | | | 样式3:BRDatePickerModeDateAndTime | 样式4:BRDatePickerModeCountDownTimer | | 样式3:BRDatePickerModeTime | 样式4:BRDatePickerModeCountDownTimer |

  • 以下11种样式是使用 UIPickerView 类进行封装的。

| 样式5:BRDatePickerModeYMDHMS | 样式6:BRDatePickerModeYMDHM | | :----------------------------------------------------------: | :----------------------------------------------------------: | | 样式5:BRDatePickerModeYMDHMS | 样式6:BRDatePickerModeYMDHM | | | | | 样式7:BRDatePickerModeYMDH | 样式8:BRDatePickerModeMDHM | | 样式7:BRDatePickerModeYMDH | 样式8:BRDatePickerModeMDHM | | | | | 样式9:BRDatePickerModeYMDE | 样式10:BRDatePickerModeYMD | | 样式9:BRDatePickerModeYMD | 样式10:BRDatePickerModeYM | | | | | 样式11:BRDatePickerModeYM | 样式12:BRDatePickerModeY | | 样式11:BRDatePickerModeY | 样式12:BRDatePickerModeMD | | | | | 样式13:BRDatePickerModeMD | 样式14:BRDatePickerModeHMS | | 样式13:BRDatePickerModeHMS | 样式14:BRDatePickerModeHM | | | | | 样式15: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;

| 英式日期年月日 | ![英式

View on GitHub
GitHub Stars2.6k
CategoryDevelopment
Updated3d ago
Forks461

Languages

Objective-C

Security Score

100/100

Audited on Mar 31, 2026

No findings