本文将演示如何设置表单中的输入内容的格式。
在项目导航区,打开视图控制器的代码文件【VIEwController.swift】
现在开始编写代码,实现设置表单中的输入内容的格式。
1 import UIKit 2 //首先在当前类文件中, 3 //引入以及安装的第三方类库 4 import Eureka 5 6 //创建一个货币类,该类继承自数学格式类,并遵循格式化协议。 7 class CurrencyFormatter : NumberFormatter,FormatterProtocol 8 { 9 //添加一个方法,当处理对象是数字时,则设置其小数点的位置。 10 overrIDe func getobjectValue(_ obj: autoreleasingUnsafeMutablePointer<AnyObject?>?,for string: String,range rangep: UnsafeMutablePointer<NSRange>?) throws 11 { 12 //如果设置对象为空,则不再执行后面的代码 13 guard obj != nil else { return } 14 //将字符串按小数点进行分割,并重新拼接成一个新的字符串。 15 let str = string.components(separatedBy: CharacterSet.decimalDigits.inverted).joined(separator: "") 16 //根据小数点的位数,设置对象的数据。 17 obj?.pointee = NSNumber(value: (Double(str) ?? 0.0)/Double(pow(10.0,Double(minimumFractionDigits)))) 18 } 19 20 //添加一个协议中的方法,用来获得当输入新字符时的字符输入位置 21 func getNewposition(forposition position: UITextposition,inTextinput textinput: UITextinput,oldValue: String?,newValue: String?) -> UITextposition 22 { 23 //根据原位置和偏移距离,计算并返回新的位置。 24 return textinput.position(from: position, 25 offset:((newValue?.characters.count ?? 0) - (oldValue?.characters.count ?? 0))) ?? position 26 } 27 } 28 29 //修改当前视图控制器类的父类的名称 30 class VIEwController: FormVIEwController { 31 32 overrIDe func vIEwDIDLoad() { 33 super.vIEwDIDLoad() 34 35 //在表单中添加一个新的段落,并设置段落的标题 36 form +++ Section("Number formatters") 37 //添加一个数字行 38 <<< DecimalRow() 39 { 40 //设置用户在输入时,实时设置数字的格式 41 $0.useFormatterDuringinput = true 42 //设置本行的标题文字 43 $0.Title = "Currency style" 44 //设置本行的默认值 45 $0.value = 2017 46 //初始化一个货币格式对象 47 let formatter = CurrencyFormatter() 48 //根据设备的地区,使用不同的货币符号 49 formatter.locale = .current 50 //设置本行的数字为货币格式 51 formatter.numberStyle = .currency 52 //设置用来格式化本行数据的对象 53 $0.formatter = formatter 54 } 55 //添加一个数字行 56 <<< DecimalRow() 57 { 58 //设置本行的标题文字 59 $0.Title = "ScIEntific style" 60 //设置本行的默认值 61 $0.value = 2017 62 //初始化一个数字格式对象 63 let formatter = NumberFormatter() 64 //设置格式对象的本地化属性 65 formatter.locale = .current 66 //设置本行的数字为科学计数法 67 formatter.numberStyle = .scIEntific 68 //将这种格式应用在当前的表单行 69 $0.formatter = formatter 70 } 71 //添加一个整数行 72 <<< IntRow() 73 { 74 //设置本行的标题文字 75 $0.Title = "Spell out style" 76 //设置本行的默认值 77 $0.value = 2017 78 //初始化一个数字格式对象 79 let formatter = NumberFormatter() 80 //设置格式对象的本地化属性 81 formatter.locale = .current 82 //设置格式对象的数字样式 83 formatter.numberStyle = .spellOut 84 //将这种格式应用在当前的表单行 85 $0.formatter = formatter 86 } 87 88 //添加一个段落,用来添加日期格式的表单的表单行 89 +++ Section("Date formatters") 90 //在段落中添加一个日期行 91 <<< DateRow() 92 { 93 //设置本行的标题文字 94 $0.Title = "Short style" 95 //设置本行的默认值 96 $0.value = Date() 97 //初始化一个日期格式对象 98 let formatter = DateFormatter() 99 //设置格式对象的本地化属性100 formatter.locale = .current101 //设置格式对象为短日期样式102 formatter.dateStyle = .short103 //将这种格式应用在当前的表单行104 $0.dateFormatter = formatter105 }106 //在段落中添加一个日期行107 <<< DateRow()108 {109 //设置本行的标题文字110 $0.Title = "Long style"111 //设置本行的默认值112 $0.value = Date()113 //初始化一个日期格式对象114 let formatter = DateFormatter()115 //设置格式对象的本地化属性116 formatter.locale = .current117 //设置格式对象为长日期样式118 formatter.dateStyle = .long119 //将这种格式应用在当前的表单行120 $0.dateFormatter = formatter121 }122 //添加一个段落,用来添加其他格式的表单行123 +++ Section("Other formatters")124 //添加一个数字表单行125 <<< DecimalRow()126 {127 //设置本行的标题文字128 $0.Title = "Energy: Jules to calorIEs"129 //设置本行的默认值130 $0.value = 100.0131 //初始化一个能量格式对象132 let formatter = EnergyFormatter()133 //将这种格式应用在当前的表单行134 $0.formatter = formatter135 }136 //添加一个整数行137 <<< IntRow()138 {139 //设置本行的标题文字140 $0.Title = "Weight: Kg to lb"141 //设置本行的默认值142 $0.value = 1000143 //初始化一个重量格式对象,144 //将这种格式应用在当前的表单行145 $0.formatter = MassFormatter()146 }147 }148 149 overrIDe func dIDReceiveMemoryWarning() {150 super.dIDReceiveMemoryWarning()151 // dispose of any resources that can be recreated.152 }153 }总结
以上是内存溢出为你收集整理的[Swift通天遁地]二、表格表单-(15)自定义表单文本框内容的格式全部内容,希望文章能够帮你解决[Swift通天遁地]二、表格表单-(15)自定义表单文本框内容的格式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)