DownPickerSwift 3.0.1

DownPickerSwift 3.0.1

Daniel ChickHomebaseAI 维护。



DownPickerSwift

Platforms License

Carthage Compatible CocoaPods Compatible

DownPickerSwift 是一个用于创建 iOS 下拉列表/组合框控件的极度轻量级类库,它将表现出与 HTML/Android 对应的类似行为。您只需要标准的 UITextField 和几行代码。

此库受到了 DownPicker 的启发。

功能介绍

它可以将代码中已经存在的任何 UITextField(包括那些添加到 Storyboard 中的UITextField)

alt text

转换成这样

alt text

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

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

工作原理

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

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

需求

  • iOS 9.0+
  • Xcode 10.0+

安装

依赖管理器

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。可以使用以下命令安装它

$ gem install cocoapods

要将 DownPickerSwift 集成到您的 Xcode 项目中,请使用 CocoaPods 在您的 Podfile 中指定它

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

pod 'DownPickerSwift', '~> 1.1.1'

然后,运行以下命令

$ pod install
Carthage

Carthage 是一个分散式的依赖管理器,可以自动将框架添加到您的 Cocoa 应用程序中。

您可以使用 Homebrew 来安装 Carthage,以下是命令

$ brew update
$ brew install carthage

要将 DownPickerSwift 集成到您的 Xcode 项目中,请使用 Carthage 在您的 Cartfile 中指定它

github "HomebaseAI/DownPickerSwift" ~> 1.1.1

手动

如果您不想使用上述任何依赖管理器,您也可以手动将 DownPickerSwift 集成到项目中。

Git 子模块

  • 打开终端,cd 到您的顶级项目目录,如果您的项目尚未初始化为 git 仓库,请运行以下命令
$ git init
  • 通过运行以下命令将 DownPickerSwift 添加为 git 子模块
$ git submodule add https://github.com/HomebaseAI/DownPickerSwift.git
$ git submodule update --init --recursive
  • 打开新的 DownPickerSwift 文件夹,并将 DownPicker.xcodeproj 拖动到您的应用程序的 Xcode 项目的项目导航器中。

    它应该出现在您的应用程序蓝色项目图标之下。它是在所有其他 Xcode 组之上还是之下并不重要。

  • 在项目导航器中选择 DownPicker.xcodeproj,并验证部署目标与您的应用程序目标相匹配。

  • 接下来,在选择您的应用程序项目(蓝色项目图标)以导航到目标配置窗口的情况下,在侧边栏的“目标”下选择应用程序目标。

  • 在该窗口顶部选项卡栏中打开“常规”面板。

  • 在“嵌入的二进制文件”部分下点击+按钮。

  • 您将看到两个不同的DownPicker.xcodeproj文件夹,每个文件夹中都有一个DownPicker.framework的不同版本,这都位于一个Products文件夹中。

    您选择的哪个Products文件夹无关紧要。

  • 选择DownPicker.framework

  • 就这么多!

DownPicker.framework将自动作为目标依赖项、链接框架和嵌入框架添加到复制文件构建阶段,这就是在模拟器和设备上构建所需的全部内容。

嵌入的二进制文件

  • https://github.com/HomebaseAI/DownPickerSwift/releases下载最新版本
  • 接下来,在选择您的应用程序项目(蓝色项目图标)以导航到目标配置窗口的情况下,在侧边栏的“目标”下选择应用程序目标。
  • 在该窗口顶部选项卡栏中打开“常规”面板。
  • 在“嵌入的二进制文件”部分下点击+按钮。
  • 添加下载的DownPicker.framework
  • 就这么多!

使用方法

一旦您已安装DownPicker并将其包含到项目中,您可以选择将其用作控制器包装器或自定义控件:选择权取决于您,根据您的编程风格而定。

作为控制器包装器

添加(或选择)您想转换为DownPicker的UITextField。您可以使用Storyboard设计师工具或通过编程方式实现;您还可以设置约束、自定义位置/坐标、字体、颜色等任何您喜欢的。完成之后,打开控制器并为DownPicker包装器创建一个属性

import DownPicker

let textField = UITextField()
let picker: DownPicker?

然后在控制器中的viewDidLoad方法中添加以下行

let dummyData = ["R.E.M.", "Dire Straits", "Police", "Sex Pistols", "Pink Floyd"]
picker = DownPicker(with: textField, data: dummyData)

就这么多。您可以使用self.datePicker.texttextField.text在任意时间检索用户的选项。

作为自定义控件

如果您想将DownPicker作为自定义控件使用,只需程序化实例化所提供的UIDownPicker类并将其附加到您的视图中,就像任何其他UI控件一样。

import DownPicker

let picker: UIDownPicker?

然后在控制器中的viewDidLoad方法中添加以下行

let dummyData = ["R.E.M.", "Dire Straits", "Police", "Sex Pistols", "Pink Floyd"]
picker = UIDownPicker(with: dummyData)

状态改变事件处理

您可以通过以下方式使用UIControlEventValueChanged控制操作将您自己的委托函数绑定到DownPicker的状态改变:

picker?.addTarget(self, action: #selector(printTest(selectedValue:)), for: .valueChanged)

@objc private func printTest(selectedValue: DownPicker) {
    print(selectedValue.text)
}

其他功能

您还可以

  • 使用 downPicker.setData(newData: [String]) 方法延迟加载数据。
  • 使用 downPicker.showArrowImage = false 方法禁用右侧箭头图像。
  • 使用 downPicker.setArrowImage(newImage: UIImage) 使用自定义右侧箭头图像。
  • 使用 downPicker.setPlaceholder(newString: String)downPicker.setPlaceholderWhileSelecting(newString: String) 方法配置(和/或本地化)占位符文本字符串。
  • 使用 downPicker.getPickerView() 方法获取、自定义并连接内部 UIPickerView 控制器(请自行承担风险)。
  • 使用 downPicker.getTextView() 方法获取、自定义并连接内部 UITextField 控制器(请自行承担风险)。请记住,如果您使用了包装器,它就是您传递的确切相同控制器,所以您可能更喜欢使用您的主要引用。
  • 在实例化 DownPicker 后,将布尔标志属性 shouldDisplayCancelButton 设置为 false 可以移除取消按钮。
  • 使用 setToolbarTitle(newTitle: String) 为工具栏添加标题,从而提供有关选择器用途的更多上下文。

贡献

欢迎提出问题和拉取请求!

作者

此库受到了 DownPicker 的启发。
@HomebaseAI 拥有并由 chickdan 维护。

许可

DownPickerSwift 已在 MIT 许可下发布。有关详细信息,请参阅 LICENSE