BAPickView 1.2.5

BAPickView 1.2.5

测试测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2023年4月

boai 维护。



  • 作者
  • boai

BAPickView

BAHome Team Name CI Status Version License Platform

示例

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install

要求

安装

BAPickView 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile

pod 'BAPickView'

V1.2.1 版本删除旧版本代码,注意:如需使用旧版本,请固定版本号为 pod 'BAPickView', 1.2.0

作者

boai, [email protected]

许可证

BAPickView 遵循 MIT 许可协议。更多详情请参阅 LICENSE 文件。

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、图片示例

BAPickView.gif BAPickView1.png

3、安装、导入示例和源码地址

  • 1、pod 导入【最新版本:】:
    pod 'BAPickView'
    如果发现 pod search BAPickView 搜索出来的不是最新版本,需要在终端执行 cd 命令返回文件路径,然后执行 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 示例

BAPickView.png

简单封装效果 及 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-09 【倒叙】
最新Version:【Version:1.2.5】
更新内容:
1.2.5.1、此版本删除旧版本代码,注意:如需使用旧版本,请固定版本号为 V1.2.0
1.2.5.2、修复一些已知问题

最新更新时间:2022-08-05 【倒叙】
最新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-09-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-08-30 【倒叙】
最新Version:【Version:1.1.8】
更新内容:
1.1.8.1、优化适配异形屏,优化部分动画性能,(感谢git网友 @李智慧 同学提出的 bug!)

最新更新时间:2019-08-20 【倒叙】
最新Version:【Version:1.1.7】
更新内容:
1.1.7.1、修复部分自定义日期大小数值取错问题,(感谢git网友 @李智慧 同学提出的 bug!)

最新更新时间:2019-02-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】 的发展离不开小伙伴们的信任与推广,再次感谢各位的支持!