cdts/xdts-ios 3/TreeHole/Code/Gategory/BRPickerView/StringPickerView/BRStringPickerView.h

192 lines
7.4 KiB
C
Raw Normal View History

2023-07-27 09:20:00 +08:00
//
// BRStringPickerView.h
// BRPickerViewDemo
//
// Created by renbo on 2017/8/11.
// Copyright © 2017 irenb. All rights reserved.
//
// 最新代码下载地址https://github.com/91renb/BRPickerView
#import "BRBaseView.h"
#import "BRResultModel.h"
NS_ASSUME_NONNULL_BEGIN
/// 字符串选择器类型
typedef NS_ENUM(NSInteger, BRStringPickerMode) {
/** 单列选择器 */
BRStringPickerComponentSingle,
/** 多列选择器 */
BRStringPickerComponentMulti,
/** 多级联动选择器 */
BRStringPickerComponentLinkage
};
typedef void(^BRStringResultModelBlock)(BRResultModel * _Nullable resultModel);
typedef void(^BRStringResultModelArrayBlock)(NSArray <BRResultModel *> * _Nullable resultModelArr);
@interface BRStringPickerView : BRBaseView
/**
//////////////////////////////////////////////////////////////////////////
///
/// 【用法一】
/// 特点:灵活,扩展性强(推荐使用!)
///
////////////////////////////////////////////////////////////////////////*/
/** 字符串选择器显示类型 */
@property (nonatomic, assign) BRStringPickerMode pickerMode;
/**
* 1.
* @[@"", @"", @"其他"](NSArray <BRResultModel *>*)
* @[@[@"语文", @"数学", @"英语"], @[@"优秀", @"良好"]]
* (NSArray <BRResultModel *>*)Demo
*/
@property (nullable, nonatomic, copy) NSArray *dataSourceArr;
/**
* 2.
* plist文件名NSString类型@"test.plist"
* plist文件中plist文件名更加简单
*/
@property (nullable, nonatomic, copy) NSString *plistName;
/**
*
* 使 selectIndex使 selectValue
*/
@property (nonatomic, assign) NSInteger selectIndex;
@property (nullable, nonatomic, copy) NSString *selectValue;
/**
*
* 使 selectIndexs使 selectValues
*/
@property (nullable, nonatomic, copy) NSArray <NSNumber *> *selectIndexs;
@property (nullable, nonatomic, copy) NSArray <NSString *> *selectValues;
/** 选择结果的回调【单列】 */
@property (nullable, nonatomic, copy) BRStringResultModelBlock resultModelBlock;
/** 选择结果的回调【多列】 */
@property (nullable, nonatomic, copy) BRStringResultModelArrayBlock resultModelArrayBlock;
/** 滚动选择时触发的回调【单列】 */
@property (nullable, nonatomic, copy) BRStringResultModelBlock changeModelBlock;
/** 滚动选择时触发的回调【多列】 */
@property (nullable, nonatomic, copy) BRStringResultModelArrayBlock changeModelArrayBlock;
/**
* () for `BRStringPickerComponentLinkage`, ignored otherwise.
* 使 key parentKey
*/
@property (nonatomic, assign) NSInteger numberOfComponents;
/// 初始化字符串选择器
/// @param pickerMode 字符串选择器显示类型
- (instancetype)initWithPickerMode:(BRStringPickerMode)pickerMode;
/// 弹出选择器视图
- (void)show;
/// 关闭选择器视图
- (void)dismiss;
//================================================= 华丽的分割线 =================================================
/**
//////////////////////////////////////////////////////////////////////////
///
/// 【用法二】:快捷使用,直接选择下面其中的一个方法进行使用
/// 特点:快捷,方便
///
////////////////////////////////////////////////////////////////////////*/
/**
* 1.
*
* @param title
* @param dataSourceArr @[@"", @"", @"其他"](NSArray <BRResultModel *>*)
* @param selectIndex
* @param resultBlock
*
*/
+ (void)showPickerWithTitle:(nullable NSString *)title
dataSourceArr:(nullable NSArray *)dataSourceArr
selectIndex:(NSInteger)selectIndex
resultBlock:(nullable BRStringResultModelBlock)resultBlock;
/**
* 2.
*
* @param title
* @param dataSourceArr @[@"", @"", @"其他"]
* @param selectIndex
* @param isAutoSelect NO
* @param resultBlock
*
*/
+ (void)showPickerWithTitle:(nullable NSString *)title
dataSourceArr:(nullable NSArray *)dataSourceArr
selectIndex:(NSInteger)selectIndex
isAutoSelect:(BOOL)isAutoSelect
resultBlock:(nullable BRStringResultModelBlock)resultBlock;
/**
* 3.
*
* @param title
* @param dataSourceArr @[@[@"语文", @"数学", @"英语"], @[@"优秀", @"良好"]]
* @param selectIndexs @[@2, @1]
* @param resultBlock
*
*/
+ (void)showMultiPickerWithTitle:(nullable NSString *)title
dataSourceArr:(nullable NSArray *)dataSourceArr
selectIndexs:(nullable NSArray <NSNumber *> *)selectIndexs
resultBlock:(nullable BRStringResultModelArrayBlock)resultBlock;
/**
* 4.
*
* @param title
* @param dataSourceArr @[@[@"语文", @"数学", @"英语"], @[@"优秀", @"良好"]]
* @param selectIndexs @[@2, @1]
* @param isAutoSelect NO
* @param resultBlock
*
*/
+ (void)showMultiPickerWithTitle:(nullable NSString *)title
dataSourceArr:(nullable NSArray *)dataSourceArr
selectIndexs:(nullable NSArray <NSNumber *> *)selectIndexs
isAutoSelect:(BOOL)isAutoSelect
resultBlock:(nullable BRStringResultModelArrayBlock)resultBlock;
/**
* 5.
*
* @param title
* @param dataSourceArr (NSArray <BRResultModel *>*)
* @param selectIndexs @[@2, @1]
* @param isAutoSelect NO
* @param resultBlock
*
*/
+ (void)showLinkagePickerWithTitle:(nullable NSString *)title
dataSourceArr:(nullable NSArray *)dataSourceArr
selectIndexs:(nullable NSArray <NSNumber *> *)selectIndexs
isAutoSelect:(BOOL)isAutoSelect
resultBlock:(nullable BRStringResultModelArrayBlock)resultBlock;
@end
NS_ASSUME_NONNULL_END