BAPickView
Example
To run the example project, clone the repo, and run pod install
from the Example directory first.
Requirements
Installation
BAPickView is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'BAPickView'
V1.2.1
版本删除旧版本代码,注意:如需使用旧版本,请固定版本号为 pod 'BAPickView', 1.2.0
Author
boai, [email protected]
License
BAPickView is available under the MIT license. See the LICENSE file for more info.
1、功能及简介
- 1、城市选择器,三级联动,可返回省市县和精确的经纬度
- 2、可以自定义 array 显示,性别选择等【目前只支持单行数据】
- 3、日期选择器:年月日,可以完全自定义 NSDateFormatter
- 4、日期选择器:年月,可以完全自定义 NSDateFormatter
- 5、日期选择器:年周,如:2017年,第21周
- 6、横竖屏适配完美
- 7、可以自定义按钮颜色、背景颜色等
- 8、新增各种展示、消失动画,如:缩放、上下左右展示、消失动画等
- 9、可以自由设置 pickView 居中或者在底部显示,还可以自由定制 toolbar 居中或者在底部显示
- 10、可以自由设置 pickView 字体、字体颜色等内容,注意:日期选择器暂时不能修改字体,有可能被苹果审核不通过,如有特殊需求,可通过 runtime 修改
- 11、新增 各种自定义 datePicker:年、年月、年月日、时间等等,你能想到的效果都有
- 12、可以自定义 datePicker 的字体颜色、字体、字体大小、背景颜色等
- 13、可以自定义 datePicker 的最大、最小年限
- 14、可以自定义 datePicker 的 toolBar 位置、字体、背景颜色等
- 15、可以自定义显示隐藏 分割线和分割线颜色
- 16、日期选择器新增 最大月份限制(感谢简书网友 @洁简 同学提出的 需求!)
- 17、日期选择器新增 优化了最大最小年份月份的写法,现在可以自由定义最大最小日期了,详见 demo
- 18、新增 选中结果直接显示在 工具栏的中间,且可以自定义颜色、字体
- 19、日期选择器 新增背景年份水印显示
- 20、完美适配 iOS 11 和 iPhone X
- 21、新增 自定义
datePicker
自定义字体颜色
2、图片示例
3、安装、导入示例和源码地址
- 1、pod 导入【最新版本:】:
pod 'BAPickView'
如果发现pod search BAPickView
搜索出来的不是最新版本,需要在终端执行 cd 转换文件路径命令退回到 desktop,然后执行pod setup
命令更新本地spec缓存(可能需要几分钟),然后再搜索就可以了。
具体步骤:- pod setup : 初始化
- pod repo update : 更新仓库
- pod search BAPickView
- 2、文件夹拖入:下载demo,把 BAPickView 文件夹拖入项目即可,
- 3、导入头文件:
#import "BAPickView_OC.h"
- 4、项目源码地址:
OC 版 :https://github.com/BAHome/BAPickView
4、BAPickView 的类结构及 demo 示例
简单封装效果 及 demo 示例
//
// BAPickerManger.h
// BAPickView
//
// Created by 博爱 on 2021/4/2.
// 此类是简单的二次封装,如有其他自定义选项可以自行单独二次封装
#import <Foundation/Foundation.h>
#import "BAPickerDefine.h"
#import "BAPickerConfigModel.h"
NS_ASSUME_NONNULL_BEGIN
@interface BAPickerManger : NSObject
/// 快速创建 pickerView 单列
/// @param pickerModel 自定义 model
/// @param cb 返回
+ (void)initStringsPickerWithModel:(BAPickerModel *)pickerModel
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 单列
/// @param title 中间标题,例如:请选择日期
/// @param strings 数据源
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initStringsPickerWithTitle:(nullable NSString *)title
strings:(NSArray <NSString *>*)strings
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb ;
/// 快速创建 pickerView 单列
/// @param title 中间标题,例如:请选择日期
/// @param titleFont 中间标题文字字体
/// @param strings 数据源
/// @param maskViewBackgroundColor 遮罩背景颜色,默认:[UIColor.blackColor colorWithAlphaComponent:0.3]
/// @param cancleTitle 取消按钮文字
/// @param cancleTitleColor 取消按钮文字颜色
/// @param cancleTitleFont 取消按钮文字字体
/// @param sureTitle 确定按钮文字
/// @param sureTitleColor 确定按钮文字颜色
/// @param sureTitleFont 确定按钮文字字体
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initStringsPickerWithTitle:(nullable NSString *)title
titleFont:(nullable UIFont *)titleFont
strings:(NSArray <NSString *>*)strings
maskViewBackgroundColor:(nullable UIColor *)maskViewBackgroundColor
cancleTitle:(nullable NSString *)cancleTitle
cancleTitleColor:(nullable UIColor *)cancleTitleColor
cancleTitleFont:(nullable UIFont *)cancleTitleFont
sureTitle:(nullable NSString *)sureTitle
sureTitleColor:(nullable UIColor *)sureTitleColor
sureTitleFont:(nullable UIFont *)sureTitleFont
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb;
@end
@interface BAPickerManger (MultipleStrings)
/// 快速创建 pickerView 多列
/// @param pickerModel 自定义 model
/// @param cb 返回
+ (void)initMultipleStringsPickerWithPickerModle:(BAPickerModel *)pickerModel
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 多列
/// @param title 中间标题,例如:请选择日期
/// @param multipleStringsArray 数据源
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initMultipleStringsPickerWithTitle:(nullable NSString *)title
multipleStringsArray:(NSArray <NSArray *>*)multipleStringsArray
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 多列
/// @param title 中间标题,例如:请选择日期
/// @param titleFont 中间标题文字字体
/// @param multipleStringsArray 数据源
/// @param multipleTitleArray 顶部标题注释,详见 demo
/// @param maskViewBackgroundColor 遮罩背景颜色,默认:[UIColor.blackColor colorWithAlphaComponent:0.3]
/// @param cancleTitle 取消按钮文字
/// @param cancleTitleColor 取消按钮文字颜色
/// @param cancleTitleFont 取消按钮文字字体
/// @param sureTitle 确定按钮文字
/// @param sureTitleColor 确定按钮文字颜色
/// @param sureTitleFont 确定按钮文字字体
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initMultipleStringsPickerWithTitle:(nullable NSString *)title
titleFont:(nullable UIFont *)titleFont
multipleStringsArray:(NSArray <NSArray *>*)multipleStringsArray
multipleTitleArray:(nullable NSArray <NSString *>*)multipleTitleArray
maskViewBackgroundColor:(nullable UIColor *)maskViewBackgroundColor
cancleTitle:(nullable NSString *)cancleTitle
cancleTitleColor:(nullable UIColor *)cancleTitleColor
cancleTitleFont:(nullable UIFont *)cancleTitleFont
sureTitle:(nullable NSString *)sureTitle
sureTitleColor:(nullable UIColor *)sureTitleColor
sureTitleFont:(nullable UIFont *)sureTitleFont
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb;
@end
@interface BAPickerManger (City)
/// 快速创建 pickerView 城市选择
/// @param cb 返回
+ (void)initCityPickerWithCallBack:(BAPickerCityResultBlock)cb;
/// 快速创建 pickerView 城市选择
/// @param title 中间标题,例如:请选择日期
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initCityPickerWithTitle:(nullable NSString *)title
showResult:(BOOL)showResult
cb:(BAPickerCityResultBlock)cb;
@end
@interface BAPickerManger (SystemDateDatePicker)
/// 快速创建 pickerView 日期选择器-系统样式
/// @param datePickerModel 自定义 model
/// @param cb 返回
+ (void)initSystemDatePickerWithModel:(BADatePickerModel *)datePickerModel
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 日期选择器-系统样式
/// @param cb 返回
+ (void)initSystemDatePicker:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 日期选择器-系统样式
/// @param title 中间标题,例如:请选择日期
/// @param datePickerMode datePickerMode description
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initSystemDatePickerTitle:(nullable NSString *)title
datePickerMode:(UIDatePickerMode)datePickerMode
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 日期选择器-系统样式
/// @param title 中间标题,例如:请选择日期
/// @param titleFont 中间标题文字字体
/// @param datePickerMode datePickerMode description
/// @param formatterString formatterString description
/// @param maskViewBackgroundColor 遮罩背景颜色,默认:[UIColor.blackColor colorWithAlphaComponent:0.3]
/// @param cancleTitle 取消按钮文字
/// @param cancleTitleColor 取消按钮文字颜色
/// @param cancleTitleFont 取消按钮文字字体
/// @param sureTitle 确定按钮文字
/// @param sureTitleColor 确定按钮文字颜色
/// @param sureTitleFont 确定按钮文字字体
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initSystemDatePickerTitle:(nullable NSString *)title
titleFont:(nullable UIFont *)titleFont
datePickerMode:(UIDatePickerMode)datePickerMode
formatterString:(nullable NSString *)formatterString
maskViewBackgroundColor:(nullable UIColor *)maskViewBackgroundColor
cancleTitle:(nullable NSString *)cancleTitle
cancleTitleColor:(nullable UIColor *)cancleTitleColor
cancleTitleFont:(nullable UIFont *)cancleTitleFont
sureTitle:(nullable NSString *)sureTitle
sureTitleColor:(nullable UIColor *)sureTitleColor
sureTitleFont:(nullable UIFont *)sureTitleFont
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb;
@end
@interface BAPickerManger (CustomDateDatePicker)
/// 快速创建 pickerView 日期选择器-自定义样式
/// @param datePickerModel 自定义 model
/// @param cb 返回
+ (void)initCustomDatePickerWithModel:(BADatePickerModel *)datePickerModel
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 日期选择器-自定义样式
/// @param datePickerType datePickerType description
/// @param cb 返回
+ (void)initCustomDatePickerWithType:(BADatePickerType)datePickerType
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 日期选择器-自定义样式
/// @param title 中间标题,例如:请选择日期
/// @param datePickerType datePickerType description
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initCustomDatePickerWithTitle:(nullable NSString *)title
datePickerType:(BADatePickerType)datePickerType
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb;
/// 快速创建 pickerView 日期选择器-自定义样式
/// @param title 中间标题,例如:请选择日期
/// @param titleFont 中间标题文字字体
/// @param datePickerType datePickerType description
/// @param maskViewBackgroundColor 遮罩背景颜色,默认:[UIColor.blackColor colorWithAlphaComponent:0.3]
/// @param maximumDate 最大日期
/// @param minimumDate 最小日期
/// @param cancleTitle 取消按钮文字
/// @param cancleTitleColor 取消按钮文字颜色
/// @param cancleTitleFont 取消按钮文字字体
/// @param sureTitle 确定按钮文字
/// @param sureTitleColor 确定按钮文字颜色
/// @param sureTitleFont 确定按钮文字字体
/// @param showResult 是否显示选中结果
/// @param cb 返回
+ (void)initCustomDatePickerWithTitle:(nullable NSString *)title
titleFont:(nullable UIFont *)titleFont
datePickerType:(BADatePickerType)datePickerType
maskViewBackgroundColor:(nullable UIColor *)maskViewBackgroundColor
maximumDate:(nullable NSDate *)maximumDate
minimumDate:(nullable NSDate *)minimumDate
cancleTitle:(nullable NSString *)cancleTitle
cancleTitleColor:(nullable UIColor *)cancleTitleColor
cancleTitleFont:(nullable UIFont *)cancleTitleFont
sureTitle:(nullable NSString *)sureTitle
sureTitleColor:(nullable UIColor *)sureTitleColor
sureTitleFont:(nullable UIFont *)sureTitleFont
showResult:(BOOL)showResult
cb:(BAPickerResultBlock)cb;
@end
NS_ASSUME_NONNULL_END
其他示例可下载demo查看源码!
5、更新记录:【倒叙】
欢迎使用 【BAHome】 系列开源代码 ! 如有更多需求,请前往:【https://github.com/BAHome】
最新更新时间:2023-02-9 【倒叙】
最新Version:【Version:1.2.5】
更新内容:
1.2.5.1、此版本删除旧版本代码,注意:如需使用旧版本,请固定版本号为 V1.2.0
1.2.5.2、修复一些已知问题
最新更新时间:2022-08-5 【倒叙】
最新Version:【Version:1.2.4】
更新内容:
1.2.4.1、此版本删除旧版本代码,注意:如需使用旧版本,请固定版本号为 V1.2.0
1.2.4.2、新增 CustomDatePicker
自定义字体颜色
1.2.4.2、修复一些已知问题
最新更新时间:2021-04-13 【倒叙】
最新Version:【Version:1.2.3】
更新内容:
1.2.3.1、此版本删除旧版本代码,注意:如需使用旧版本,请固定版本号为 V1.2.0
1.2.3.2、修复一些已知问题
最新更新时间:2021-04-09 【倒叙】
最新Version:【Version:1.2.0】
更新内容:
1.2.0.1、优化适配 iOS 14 及 修复 自定义日期选择器 已知问题
1.2.0.2、BAPickerManger
全新封装组件开发完成,注意:如需使用旧版本,请固定版本号为 V1.2.0,
最新更新时间:2019-9-03 【倒叙】
最新Version:【Version:1.1.9】
更新内容:
1.1.9.1、优化适配异形屏,优化部分动画性能
1.1.9.2、BAKit_PickerView
系统 UIDatePicker
新增 最大最小日期 设置
1.1.9.3、BAKit_PickerView
新增 toolBarView 底部线条,isShowTooBarBottomeLine ,可自定义线条颜色
最新更新时间:2019-8-30 【倒叙】
最新Version:【Version:1.1.8】
更新内容:
1.1.8.1、优化适配异形屏,优化部分动画性能,(感谢git网友 @李智慧 同学提出的 bug!)
最新更新时间:2019-8-20 【倒叙】
最新Version:【Version:1.1.7】
更新内容:
1.1.7.1、修复部分自定义日期大小数值去错问题,(感谢git网友 @李智慧 同学提出的 bug!)
最新更新时间:2019-2-27 【倒叙】
最新Version:【Version:1.1.6】
更新内容:
1.1.6.1、修复部分自定义数组取值不全的问题,(感谢简书网友 @徐国伟 同学提出的 bug!)
最新更新时间:2017-12-13 【倒叙】
最新Version:【Version:1.1.4】
更新内容:
1.1.4.1、修复 城市选择器 plist 文件读取失败后崩溃的 bug ,新增【城市数据读取失败】打印 log和弹框提示!(感谢简书网友 @不会凉的黄花菜 同学提出的 bug!)
最新更新时间:2017-11-02 【倒叙】
最新Version:【Version:1.1.3】
更新内容:
1.1.3.1、完美适配 iOS 11 和 iPhone X
最新更新时间:2017-10-08 【倒叙】
最新Version:【Version:1.1.2】
更新内容:
1.1.2.1、日期选择器 新增背景年份水印显示
1.1.2.2、优化部分注释
最新更新时间:2017-09-01 【倒叙】
最新Version:【Version:1.1.1】
更新内容:
1.1.1.1、日期选择器 修复顶部结果显示异常的问题,,详见 demo
最新更新时间:2017-08-05 【倒叙】
最新Version:【Version:1.1.0】
更新内容:
1.1.0.1、日期选择器新增 优化了最大最小年份月份的写法,现在可以自由定义最大最小日期了,详见 demo
1.1.0.2、新增 选中结果直接显示在 工具栏的中间,且可以自定义颜色、字体
1.1.0.3、修复日期选择器横竖屏不适配的 bug
最新更新时间:2017-07-18 【倒叙】
最新Version:【Version:1.0.9】
更新内容:
1.0.9.1、日期选择器新增 最大月份限制(感谢简书网友 @洁简 同学提出的 需求!)
最新更新时间:2017-07-17 【倒叙】
最新Version:【Version:1.0.8】
更新内容:
1.0.8.1、新增分割线开关和分割线颜色自定义(感谢群里 @杭州-可米 和 @紫暄同学提出的 需求!)
最新更新时间:2017-06-28 【倒叙】
最新Version:【Version:1.0.7】
更新内容:
1.0.7.1、修复 日期选择器 不同样式下错乱的 bug(感谢群里 @西瓜Sama 同学提出的 bug!)
最新更新时间:2017-06-23 【倒叙】
最新Version:【Version:1.0.6】
更新内容:
1.0.6.1、优化部分宏定义
最新更新时间:2017-06-22 【倒叙】
最新Version:【Version:1.0.5】
更新内容:
1.0.5.1、新增 多种动画样式
最新更新时间:2017-06-19 【倒叙】
最新Version:【Version:1.0.4】
更新内容:
1.0.4.1、新增 各种自定义 datePicker:年、年月、年月日、时间等等,你能想到的效果都有
1.0.4.2、可以自定义 datePicker 的字体颜色、字体、字体大小、背景颜色等
1.0.4.3、可以自定义 datePicker 的最大、最小年限
1.0.4.4、可以自定义 datePicker 的 toolBar 位置、字体、背景颜色等
最新更新时间:2017-06-03 【倒叙】
最新Version:【Version:1.0.3】
更新内容:
1.0.3.1、可以自由设置 pickView 居中或者在底部显示,还可以自由定制 toolbar 居中或者在底部显示
1.0.3.2、可以自由设置 pickView 字体、字体颜色等内容,注意:日期选择器暂时不能修改字体,有可能被苹果审核不通过,如有特殊需求,可通过 runtime 修改
最新更新时间:2017-05-27 【倒叙】
最新Version:【Version:1.0.2】
更新内容:
1.0.2.1、新增进出场动画,缩放、上下左右展示、消失动画
1.0.2.2、修复 isTouchEdgeHide 失效的 bug
最新更新时间:2017-05-22 【倒叙】
最新Version:【Version:1.0.1】
更新内容:
1.0.1.1、新增年周选择器,如:2017年,第21周
最新更新时间:2017-05-16 【倒叙】
最新Version:【Version:1.0.0】
更新内容:
1.0.0.1、城市选择器,三级联动,可返回省市县和精确的经纬度
1.0.0.2、可以自定义 array 显示,性别选择等【目前只支持单行数据】
1.0.0.3、日期选择器:年月日,可以完全自定义 NSDateFormatter
1.0.0.4、日期选择器:年月,可以完全自定义 NSDateFormatter
1.0.0.5、横竖屏适配完美
1.0.0.6、可以自定义按钮颜色、背景颜色等
1.0.0.7、理论完全兼容现有所有 iOS 系统版本
6、bug 反馈
1、开发中遇到 bug,希望小伙伴儿们能够及时反馈与我们 【BAHome】 团队,我们必定会认真对待每一个问题!
2、以后提需求和 bug 的同学,记得把 git 或者博客链接给我们,我直接超链到你们那里!希望大家积极参与测试!
7、BAHome 团队成员
1、QQ 群 479663605
【注意:此群为 2 元 付费群,介意的小伙伴儿勿扰!】
孙博岩
QQ:137361770
git:https://github.com/boai
简书:http://www.jianshu.com/u/95c9800fdf47
微博:
马景丽
QQ:1253540493
git:https://github.com/MaJingli
陆晓峰
QQ:442171865
git:https://github.com/zeR0Lu
陈集
QQ:3161182978
git:https://github.com/chenjipdc
简书:http://www.jianshu.com/u/90ae559fc21d
任子丰
QQ:459643690
git:https://github.com/renzifeng
吴丰收
QQ:498121294
石少庸
QQ:363605775
git:https://github.com/CrazyCoderShi
简书:http://www.jianshu.com/u/0726f4d689a3
丁寅初
QQ:1137155216
git:https://github.com/1137155216
博客园:http://www.cnblogs.com/ios-dyc1998
权军刚
QQ:906910380
git:https://github.com/Gang679
简书:http://www.jianshu.com/u/ab83189244d9
8、开发环境 和 支持版本
开发使用 最新版本 Xcode,理论上支持 iOS 9 及以上版本,如有版本适配问题,请及时反馈!多谢合作!
9、感谢
感谢 【BAHome】 团队成员倾力合作,后期会推出一系列 常用 UI 控件的封装,大家有需求得也可以在 issue 提出,如果合理,我们会尽快推出新版本!
【BAHome】 的发展离不开小伙伴儿的信任与推广,再次感谢各位小伙伴儿的支持!