NumericPicker 1.1.1

NumericPicker 1.1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2018年10月
SPM支持 SPM

Matt Lewin 维护。



NumericPicker

Version License Platform Swift Version CI Status

CocoaPods Carthage Swift Package Manager

GitHub release

描述

NumericPicker 是一个纯 Swift 编写的 iOS 选择器控件。它简化了创建能够让用户通过数字指定数字的选择器的过程。它将根据当前(或指定)区域设置自动使用适当的分组和十进制分隔符。您可以在控制器中轻松指定整数和十进制位数。

Sample Video

请注意,“选择器值”字段仅用于演示目的。它不包括在 NumericPicker 控件中。


目录


最低要求

版本 1.1.x

  • Xcode 10
  • iOS 10.3
  • Swift 4.2

版本 1.0.x

  • Xcode 9
  • iOS 10.3

示例

该仓库包含一个示例项目,展示如何从 Interface Builder 和代码中使用 NumericPicker 控件。

要运行示例项目,请克隆仓库,打开 NumericPicker.xcodeproj,然后运行 NumericPicker-Example 方案

安装

CocoaPods

NumericPicker可通过CocoaPods获取。

CocoaPods是一个Swift和Objective-C的依赖管理器,可以简化第三方库如NumericPicker在各种项目中的使用。

首先,在您的Podfile中添加以下行

pod "NumericPicker"

或者,对于Xcode 9和Swift 4.0

pod "NumericPicker", '~> 1.0.0'

其次,将NumericPicker安装到项目中

pod install

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖项并向您提供二进制框架。

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

github "MattLewin/NumericPicker"

或者,对于Xcode 9和Swift 4.0

github "MattLewin/NumericPicker" ~> 1.0.0

运行 carthage update 构建框架,并将构建好的 NumericPicker.framework(位于 Carthage/Build/iOS 文件夹中)拖到您的 Xcode 项目中(在 Targets 中的“链接框架和库”)。

Swift Package Manager (SPM)

Swift Package Manager (SPM) 还不支持导入 UIKit 或为 iOS 编译。因此,目前不能使用 SPM 与 NumericPicker 一起使用。

手动操作

  1. NumericPicker.swift 复制到您的项目
  2. 祝您愉快

用法

NumericPickerUIControl 的子类。因此,它与 UIDatePicker 更相似,而不是与 UIPickerView 更相似。这意味着您不需要实现 UIPickerViewDataSourceUIPickerViewDelegate

注意,提供的 示例 展示了下面详细讲述的所有内容。

可配置属性

  • value: Double - 在选择器中显示的值。设置此值可以按程序方式更新选择器。 (默认:0)
  • minIntegerDigits: Int - 选择器中包含的最小整数位数(小数点左侧的数字)。这可以理解为对选择器进行零填充。如果 value 需要的位数超过这个最小值,选择器将自动满足这个要求。(但这可能不是你想要的结果。)(默认:1)
  • fractionDigits: Int - 小数点右侧的数字位数。NumericPicker 保证显示的 fractional digits 数量正好是这个值。你可以使用这个属性来实现对小数点右侧值的舍入或零填充。(默认:0)
  • locale: Locale - 用于格式化数值的本地化设置。如果你需要使用除设备本地设置之外的数字分隔符格式化数字,请使用此功能。(默认:当前设备本地化设置)
  • font: UIFont - 用于格式化选择器组件的字体。 (默认: Body 文本样式)
  • displayString: String - 只读 - value 的文本表示形式。该字符串将包含本地化特定的分组和小数分隔符。它将在小数点右侧有 exactly fractionDigits 位数,以及代表 value 必须的最小整数位数。(默认:0)

界面构建器

要使用 NumericPicker 与界面构建器一起使用,请将 UIControl 添加到你的故事板或 XIB,并将“自定义类”设置为 NumericPicker。将“值更改”事件连接到你的视图控制器中的一个函数。(确保将其“类型”设置为如下所示的 NumericPicker。)

IBAction

在这个函数中,根据需要,您可以访问 sender.displayStringsender.value

Cocoapods 或手动

如果你使用 Cocoapods 或已将 NumericPicker.swift 添加到你的代码中,你可以在“属性”检查器中配置 valueminIntegerDigitsfractionDigits

IB NumericPicker

Carthage

出于某种原因(截至 9.0),Xcode 不支持(外部框架的)@IBInspectable 属性。这意味着您不能在 IB 中配置上述属性。但是,您可以向下面的代码添加到您的一个视图控制器中,以欺骗 IB 渲染 NumericPicker 时的默认值:

@IBDesignable extension NumericPicker { }

代码

如你对子视图进行添加操作一样,从代码中添加一个 NumericPicker 控件。以下是从 NumericPicker-Example/ViewController.swift 中获取的代码,用于生成底部示例的 NumericPicker。请注意,通常不需要设置 locale,因为 NumericPicker 默认会使用当前设备的本地化设置。

var codeNumericPicker = NumericPicker()
codeNumericPicker.minIntegerDigits = 6
codeNumericPicker.fractionDigits = 3
codeNumericPicker.value = 76543.21
codeNumericPicker.locale = Locale(identifier: "de-DE")
codeNumericPicker.addTarget(self, action: #selector(codeValueChanged), for: .valueChanged)
codePickerStack.addArrangedSubview(codeNumericPicker)

作者

Matt Lewin,[email protected]

授权

NumericPicker 在 MIT 许可证下可用。更多详情请参阅 LICENSE.md