ActionSheetPicker-3.0 基础使用指南:iOS 选择器控件详解

ActionSheetPicker-3.0 基础使用指南:iOS 选择器控件详解

ActionSheetPicker-3.0 ActionSheetPicker-3.0 项目地址: https://gitcode.com/gh_mirrors/ac/ActionSheetPicker-3.0

一、ActionSheetPicker 简介

ActionSheetPicker-3.0 是一个功能强大的 iOS 选择器控件,它提供了多种样式的选择器实现方式,可以轻松集成到你的 iOS 应用中。这个控件的主要特点包括:

  • 支持单列、多列选择器
  • 提供自定义按钮和回调功能
  • 支持多种自定义样式
  • 兼容不同 iOS 版本
  • 提供丰富的交互选项

二、基础使用方式

2.1 单列选择器实现

最基本的用法是创建一个单列字符串选择器。以下是实现步骤:

  1. 准备数据源数组
  2. 定义完成和取消的回调块
  3. 显示选择器
// 1. 准备数据
NSArray *colors = @[@"红色", @"绿色", @"蓝色", @"橙色"];

// 2. 定义回调块
ActionStringDoneBlock doneBlock = ^(ActionSheetStringPicker *picker, NSInteger selectedIndex, id selectedValue) {
    NSLog(@"选择器: %@", picker);
    NSLog(@"选中索引: %ld", (long)selectedIndex);
    NSLog(@"选中值: %@", selectedValue);
};

ActionStringCancelBlock cancelBlock = ^(ActionSheetStringPicker *picker) {
    NSLog(@"选择器已取消");
};

// 3. 显示选择器
[ActionSheetStringPicker showPickerWithTitle:@"选择颜色" 
                                       rows:colors 
                            initialSelection:0 
                                  doneBlock:doneBlock 
                                cancelBlock:cancelBlock 
                                     origin:sender];

2.2 多列选择器实现

对于需要多列选择的场景,可以使用 ActionSheetMultipleStringPicker

NSArray *rows = @[
    @[@"C", @"Db", @"D", @"Eb", @"E", @"F", @"Gb", @"G", @"Ab", @"A", @"Bb", @"B"], 
    @[@"大调", @"小调", @"多利亚调式", @"西班牙吉普赛调式"]
];

NSArray *initialSelection = @[@2, @4];

[ActionSheetMultipleStringPicker showPickerWithTitle:@"选择音阶"
                                               rows:rows
                                   initialSelection:initialSelection
                                          doneBlock:^(ActionSheetMultipleStringPicker *picker,
                                           NSArray *selectedIndexes,
                                           NSArray *selectedValues) {
                                               NSLog(@"选中索引: %@", selectedIndexes);
                                               NSLog(@"选中值: %@", [selectedValues componentsJoinedByString:@", "]);
                                           }
                                       cancelBlock:^(ActionSheetMultipleStringPicker *picker) {
                                           NSLog(@"选择器已取消: %@", picker);
                                       } origin:(UIView *)sender];

三、高级自定义功能

3.1 自定义按钮样式

你可以完全自定义完成和取消按钮的样式:

// 自定义完成按钮文本
ActionSheetStringPicker *picker = [[ActionSheetStringPicker alloc] initWithTitle:@"选择区块" 
                                                                           rows:colors 
                                                               initialSelection:0 
                                                                     doneBlock:doneBlock 
                                                                   cancelBlock:cancelBlock 
                                                                        origin:sender];
[picker setDoneButton:[[UIBarButtonItem alloc] initWithTitle:@"确定" 
                                                       style:UIBarButtonItemStylePlain 
                                                      target:nil 
                                                      action:nil]];
[picker showActionSheetPicker];

// 自定义取消按钮为图片按钮
UIButton *cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
[cancelButton setImage:[UIImage imageNamed:@"cancel.png"] forState:UIControlStateNormal];
[cancelButton setFrame:CGRectMake(0, 0, 32, 32)];
[picker setCancelButton:[[UIBarButtonItem alloc] initWithCustomView:cancelButton]];

3.2 添加自定义按钮

除了默认的完成和取消按钮,你还可以添加额外的自定义按钮:

ActionSheetStringPicker *colorPicker = [[ActionSheetStringPicker alloc] initWithTitle:@"选择颜色"
                                                                                 rows:colors
                                                                     initialSelection:0
                                                                               target:nil
                                                                        successAction:nil
                                                                         cancelAction:nil
                                                                               origin:sender];

// 添加带固定值的按钮
[colorPicker addCustomButtonWithTitle:@"默认值" value:@([colors indexOfObject:colors.lastObject])];

// 添加带代码块的按钮
[colorPicker addCustomButtonWithTitle:@"特殊操作" actionBlock:^{
    NSLog(@"执行自定义操作");
}];

// 添加带选择器的按钮
[colorPicker addCustomButtonWithTitle:@"其他操作" target:self selector:@selector(customAction)];

3.3 点击外部区域行为控制

通过 tapDismissAction 属性可以控制点击选择器外部区域时的行为:

picker.tapDismissAction = TapActionSuccess;  // 点击外部视为成功
picker.tapDismissAction = TapActionCancel;   // 点击外部视为取消
picker.tapDismissAction = TapActionNone;     // 点击外部无反应(默认)

四、界面样式自定义

4.1 背景颜色与模糊效果

// 设置选择器背景颜色
picker.pickerBackgroundColor = [UIColor blackColor];

// 设置背景模糊效果(数值越大越模糊)
picker.pickerBlurRadius = @(10);

4.2 其他自定义属性

ActionSheetPicker 提供了丰富的自定义选项:

// 工具栏自定义
picker.toolbar.backgroundColor = [UIColor blueColor];

// 标题属性
picker.title = @"请选择";
picker.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};

// 隐藏取消按钮
picker.hideCancel = YES;

// 设置支持的设备方向
picker.supportedInterfaceOrientations = UIInterfaceOrientationMaskPortrait;

五、最佳实践建议

  1. 数据准备:对于大型数据集,建议提前准备好数据源数组,避免在选择器显示时处理数据。

  2. 回调处理:在回调块中更新UI时,确保在主线程执行。

  3. 内存管理:在包含大量自定义按钮或复杂回调时,注意避免循环引用。

  4. 用户体验:根据应用风格统一选择器的视觉样式,保持一致性。

  5. 错误处理:在回调中处理可能的异常情况,如数组越界等。

通过以上介绍,你应该已经掌握了 ActionSheetPicker-3.0 的基本使用方法和高级自定义技巧。这个控件提供了极大的灵活性,可以满足大多数选择器场景的需求,同时保持代码的简洁性和可维护性。

ActionSheetPicker-3.0 ActionSheetPicker-3.0 项目地址: https://gitcode.com/gh_mirrors/ac/ActionSheetPicker-3.0

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晏彤钰Mighty

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值