[Swift通天遁地]二、表格表单-(15)自定义表单文本框内容的格式

[Swift通天遁地]二、表格表单-(15)自定义表单文本框内容的格式,第1张

概述本文将演示如何设置表单中的输入内容的格式。 在项目导航区,打开视图控制器的代码文件【ViewController.swift】 现在开始编写代码,实现设置表单中的输入内容的格式。 1 import UIKit 2 //首先在当前类文件中, 3 //引入以及安装的第三方类库 4 import Eureka 5 6 //创建一个货币类,该类继承自数学格式类,并遵循格

本文将演示如何设置表单中的输入内容的格式。

在项目导航区,打开视图控制器的代码文件【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)自定义表单文本框内容的格式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1021838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存