DownPicker 是一个极轻量级的类库,用于在 iOS 中创建 下拉列表 / 组合框 控件,其行为将与它们的 HTML / Android 相似。您只需要标准的 UITextField 和几行代码。
它能将您代码中现有的任何 UITextField(包括那些添加到 Storyboard 中的)
转换为这个
就这么简单。您只需要提供一个数据数组。
注意:如果您不喜欢 控件包装 方法,您也可以通过包含的 UIDownPicker 类将其用作 自定义控件:阅读以下段落获取更多信息。
DownPicker 基本上是一个 控件接口包装器,这意味着您不会将其用作控件 - 而是使用现有的 UITextField 控件。这是一个好主意,因为您将能够像平常一样设计、定位和应用 UITextField,无论是通过编程还是在 Storyboard UI 中,这取决于您的工作习惯。您不会改变您的样式,因为它将适应您的样式。
然而,如果您不喜欢 控件包装 模式,您只需使用包含的 UIDownPicker 类将其用作 自定义控件 即可。这完全取决于您(并且在这两种情况下安装都非常简单)。
从这个链接下载最新版本,然后解压缩并将 /DownPicker/ 文件夹拖放到您的 iOS 项目中。您可以直接在 XCode 中这样做,只需确保选中了 copy items if needed 和 create groups 选项即可。
一旦您安装了 DownPicker 并将其包含到您的项目中,您就可以将其用作控件包装器或自定义控件:这完全取决于您的编程风格。
选择(或选择一个)你想要转换为DropPicker的UITextField。你可以使用Storyboard设计工具或使用编程方法来实现;你也可以设置约束、自定义位置/坐标、字体、颜色和其他你喜欢的任何内容。完成后,打开你的控制器.h文件并创建一个属性用于DropPicker包装器
#import "DownPicker.h";
@property (strong, nonatomic) DownPicker *downPicker;
然后切换到.m文件,将以下行添加到控制器的viewDidAppear方法中
// create the array of data
NSMutableArray* bandArray = [[NSMutableArray alloc] init];
// add some sample data
[bandArray addObject:@"Offsprings"];
[bandArray addObject:@"Radiohead"];
[bandArray addObject:@"Muse"];
[bandArray addObject:@"R.E.M."];
[bandArray addObject:@"The Killers"];
[bandArray addObject:@"Social Distortion"];
// bind yourTextField to DownPicker
self.downPicker = [[DownPicker alloc] initWithTextField:self.yourTextField withData:bandArray];
就这些。你可以通过使用self.datePicker.text或textField.text在任何时候检索用户的选项。
如果你希望将DropPicker用作自定义控件,只需以编程方式实例化包含的UIDownPicker类并将其连接到视图,就像连接任何其他遗留UI控件一样
@interface YourViewController () {
UIDownPicker *_dp;
}
@end
@end
- (void)viewDidLoad
{
[super viewDidLoad];
self._dp = [[UIDownPicker] initWithData:yourMutableArray];
[self.view addSubview:self._dp];
}
然后你可以通过使用内部DownPicker公共属性来自定义它。
您可以使用以下方式的UIControlEventValueChanged控件动作将自定义委托函数绑定到DropPicker的状态更改
[self.yourDownPicker addTarget:self
action:@selector(dp_Selected:)
forControlEvents:UIControlEventValueChanged];
然后
-(void)dp_Selected:(id)dp {
NSString* selectedValue = [self.youtDownPicker text];
// do what you want
}
您还可以
您可以点击以下按钮以支持本项目的开发。
非常感谢!
Ryan,[email protected]
DownPicker可以在MIT许可下使用。有关更多信息,请参阅LICENSE文件。