GKActionSheetPicker
GKActionSheetPicker 是一个便于使用的选择多个值的选择解决方案。它显示一个从底部动画出的覆盖层菜单,用户可以从 UIPickerView
选择所需的值,然后可以通过选择正按钮确认或者关闭它。
功能
- 易于使用
- 符合 iOS 设计
- 支持字符串、日期
- 可扩展(包含国家选择器的示例)
- 支持多列
- 支持模型-显示对(例如选择显示字符串并返回相应的 ID)
- 黑色覆盖层在其他元素之上
- 点击覆盖层关闭
- 高度可自定义
- 支持所有分辨率(包括 iPad 和横屏模式)
看起来是这样的
试着用一下
要求
- iOS 7
- ARC,显然
安装
GKActionSheetPicker可以通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中
pod "GKActionSheetPicker"
使用
首先导入它
#import <GKActionSheetPicker/GKActionSheetPicker.h>
然后你应该有一个强引用,例如你可以有一个属性
@property (nonatomic, strong) GKActionSheetPicker *actionSheetPicker;
你可以这样打开它
NSArray *items = @[@"Apple", @"Orange", @"Peach", @"Pearl", @"Tomato"];
self.actionSheetPicker = [GKActionSheetPicker stringPickerWithItems:items selectCallback:^(id selected) {
NSLog(@"Hello! The value is: %@", selected);
} cancelCallback:nil];
[self.actionSheetPicker presentPickerOnView:self.view];
就是这样。
你有不同的类方法来创建多列、日期和国家的选择器。参见.h文件。
自定义值
项可以是字符串或GKActionSheetPickerItem实例。如果您想在用户选择值时获取与显示的字符串不同的事物,应该使用此对象
NSArray *items = @[
[GKActionSheetPickerItem pickerItemWithTitle:@"Apple" value:@0],
[GKActionSheetPickerItem pickerItemWithTitle:@"Orange" value:@1],
[GKActionSheetPickerItem pickerItemWithTitle:@"Peach" value:@2],
[GKActionSheetPickerItem pickerItemWithTitle:@"Pearl" value:@3],
[GKActionSheetPickerItem pickerItemWithTitle:@"Tomato" value:@4]
];
如果您正在使用字符串,将使用具有与标题相同值的GKActionSheetPickerItem创建item
设置当前值
您需要负责设置选择器的当前值。您可以在选择器被展示后进行此操作
// Present it
[self.actionSheetPicker presentPickerOnView:self.view];
// Set to previously selected value
[self.actionSheetPicker selectValue:self.twoRowsSelectedStrings[0] inComponent:0];
[self.actionSheetPicker selectValue:self.twoRowsSelectedStrings[1] inComponent:1];
注意:每个选择器类型都有不同的选择函数,例如单列选择器使用-selectValue:消息。
委托方法
如果您不喜欢回调,您可以使用类的简短版本并在您的类上实现 GKActionSheetPickerDelegate
。当用户点击确认按钮时(-actionSheetPicker:didSelectValue:
),在关闭选择器之前更改值时(-actionSheetPicker:didChangeValue:
),以及取消选择时(-actionSheetPickerDidCancel:
),委托将收到通知。将 delegate
属性设置为您的类并实现其中任何一个。
自定义
属性 | 描述 |
---|---|
selectCallback |
当用户点击确认按钮或点击选择器外部且 dismissType 为 GKActionSheetPickerDismissTypeSelect 时调用的代码块。 |
cancelCallback |
当用户点击取消按钮或点击选择器外部且 dismissType 为 GKActionSheetPickerDismissTypeCancel 时调用的代码块。 |
selectButtonTitle |
确认按钮上的标签。默认:确定 |
cancelButtonTitle |
取消按钮上的标签。默认:取消 |
cancelButtonEnabled |
是否在左侧显示取消按钮。默认为 YES |
dismissType |
控制用户点击选择器外部时发生的情况。默认:GKActionSheetPickerDismissTypeNone |
overlayLayerColor |
选择器上方的覆盖层的颜色。默认:透明的黑色。 |
标题 |
选择器的标题,将显示在按钮之间中心位置 |
更多示例
作者
Gruber Kristóf,电子邮件:[email protected],Twitter: @gklka
许可
GKActionSheetPicker 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。