DownPicker 0.1.34

DownPicker 0.1.34

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2015 年 10 月

Ryan维护。




DownPicker 0.1.34

DownPicker 是一个极轻量级的类库,用于在 iOS 中创建 下拉列表 / 组合框 控件,其行为将与它们的 HTML / Android 相似。您只需要标准的 UITextField 和几行代码。

它能做什么

它能将您代码中现有的任何 UITextField(包括那些添加到 Storyboard 中的)

alt text

转换为这个

alt text

就这么简单。您只需要提供一个数据数组。

注意:如果您不喜欢 控件包装 方法,您也可以通过包含的 UIDownPicker 类将其用作 自定义控件:阅读以下段落获取更多信息。

它怎么工作

DownPicker 基本上是一个 控件接口包装器,这意味着您不会将其用作控件 - 而是使用现有的 UITextField 控件。这是一个好主意,因为您将能够像平常一样设计、定位和应用 UITextField,无论是通过编程还是在 Storyboard UI 中,这取决于您的工作习惯。您不会改变您的样式,因为它将适应您的样式。

然而,如果您不喜欢 控件包装 模式,您只需使用包含的 UIDownPicker 类将其用作 自定义控件 即可。这完全取决于您(并且在这两种情况下安装都非常简单)。

安装

手动安装

这个链接下载最新版本,然后解压缩并将 /DownPicker/ 文件夹拖放到您的 iOS 项目中。您可以直接在 XCode 中这样做,只需确保选中了 copy items if neededcreate 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
}

附加功能

您还可以

  • 使用[self.downPicker setData:array]方法延迟加载数据。
  • 使用[self.downPicker showArrowImage:bool]方法禁用右侧箭头图像。
  • 使用[self.downPicker setArrowImage:UIImage*]方法使用自定义右侧箭头图像。您可以使用[UIImage imageNamed:@"yourCustomImage.png"]设置您的项目中的任何图像。
  • 使用[self.downPicker setPlaceholder:NSString*]和[self.downPicker setPlaceholderWhileSelecting:NSString]方法配置(和/或本地化)占位符文本字符串。
  • 使用[self.downPicker getPickerView]方法检索、自定义和挂载内部UIPickerView控件(请自担风险)。
  • 使用[self.downPicker getTextField]方法检索、自定义和挂载内部UITextField控件(请自担风险)。请记住,它与您传递的确切相同控件,所以您可能更喜欢使用您的原始引用。
  • 如果将boolean标志属性shouldDisplayCancelButton设置为NO,则可以移除取消按钮

即将推出功能

  • 更多自定义选项(给我提建议)。
  • 动态数据绑定。 ... 更多!

有用的链接

支持

您可以点击以下按钮以支持本项目的开发。

Donate

非常感谢!

作者

Ryan,[email protected]

许可

DownPicker可以在MIT许可下使用。有关更多信息,请参阅LICENSE文件。