NumberField
需求
iOS 9.0 或更高版本
安装
CocoaPods
NumberField 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行
Swift 4.2
pod 'NumberField', '0.4.2'
Swift 4.0
pod 'NumberField', '0.4.0'
使用
编程方式
// Create NumberField instance
let numberField = NumberField()
numberField.maxValue = 99999.99
numberField.decimalPlace = 2
numberField.prefixLabel.text = "LENGTH"
numberField.suffixLabel.text = "cm"
addSubview(numberField)
// Set value
numberField.value = 123.45
// Get value
let sellingPrice = numberField.value
Storyboard
- 将 UIView 拖拽到 Storyboard 中。
- 将类设置为 NumberField。
数字字段属性
参数 | 类型 | 描述 | 默认 |
---|---|---|---|
值 | 双精度浮点型 | 当前值。 | 0 |
maxValue | 双精度浮点型 | 最大值。0表示无限制。 | 0 |
decimalPlace | 整型 | 小数位数。0表示整数。 | 0 |
valueLabel | 标签文本控件 | 显示值文本的标签文本控件。 | - |
prefixLabel | 标签文本控件 | 标签文本控件在值文本左侧。 | - |
suffixLabel | 标签文本控件 | 标签文本控件在值文本右侧。 | - |
textAlignment | 数字字段对齐方式 | 值文本对齐方式(.左 / .右) | .右 |
isPrefndSuffixStickToSides | 布尔型 | True - 前缀和后缀将粘附在左右两侧。 False - 前缀和后缀将粘附在值文本上,并随值文本大小的变化而移动。 |
true |
基本组件
NumberField是由 3 个标签文本控件 构成的。您可以自定义它们以适应您的需求
// Customize value label
numberField.valueLabel.font = UIFont.systemFont(ofSize: 20)
// customize prefix label
numberField.prefixLabel.text = "LENGTH"
numberField1.prefixLabel.font = UIFont.boldSystemFont(ofSize: 16)
numberField1.prefixLabel.textColor = UIColor.gray
// customize suffix label
numberField.suffixLabel.text = "cm"
numberField1.suffixLabel.font = UIFont.boldSystemFont(ofSize: 16)
numberField1.suffixLabel.textColor = UIColor.gray
键盘自定义
参数 | 类型 | 描述 | 默认 |
---|---|---|---|
keyboardHeight | OpenGL固定点数类型 | 键盘高度。 | 260 |
keyboardBorderColor | UIColor | 键盘按钮之间边框的颜色。 | - |
keyboardTextColor | UIColor | 键盘按钮的文字颜色。 | - |
keyboardBackgroundColor | UIColor | 键盘按钮的背景颜色。 | - |
keyboardDecimalPlaceColor | UIColor | 小数点按钮的背景颜色。 | - |
keyboardBackspaceColor | UIColor | 退格按钮的背景颜色。 | - |
事件
监听 4 个 UIControlEvents: 编辑开始
、编辑结束
、编辑改变
或 编辑被拒绝
。
//Listen to editing begin:
numberField.addTarget(self, action: #selector(numberFieldEditingDidBegin), for: .editingDidBegin)
//Listen editing end:
numberField.addTarget(self, action: #selector(numberFieldEditingDidEnd), for: .editingDidEnd)
//Listen to value changed on edit.
numberField.addTarget(self, action: #selector(numberFieldEditingChanged), for: .editingChanged)
//Listen to value rejected on edit. i.e. Value exceeded maximum value.
numberField.addTarget(self, action: #selector(numberFieldEditingRejected), for: .editingRejected)
//Your functions:
func numberFieldEditingDidBegin(numberField: NumberField) { ... }
func numberFieldEditingDidEnd(numberField: NumberField) { ... }
func numberFieldEditingChanged(numberField: NumberField) { ... }
func numberFieldEditingRejected(numberField: NumberField) { ... }
作者
许可协议
NumberField 可在 MIT 许可下使用。更多信息请参阅 LICENSE 文件。