[Swift通天遁地]二、表格表单-(9)快速创建一个美观强大的表单
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10195247.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示如何利用第三方库,快速创建一个美观强大的表单
首先确保在项目中已经安装了所需的第三方库。
点击【Podfile】,查看安装配置文件。
1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'Eureka', '~> 2.0.0-beta.1' 7 end
根据配置文件中的相关配置,安装第三方库。
然后点击打开【DemoApp.xcworkspace】项目文件。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
现在开始编写代码,创建一个表单。
1 import UIKit 2 //在当前的类文件中引入已经安装的第三方类库 3 import Eureka 4 5 //修改当前视图控制器类的父类的名称 6 class ViewController: FormViewController { 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 11 //表单中的元素是以段落进行划分的。 12 //在此创建第一个段落。 13 form = Section("Section1") 14 //往第一个段落中添加一个文本行 15 <<< TextRow() 16 { 17 row in 18 //设置文本行的标识值, 19 //通过该标识值,可以获得用户输入的内容 20 row.tag = "TextRow" 21 //设置文本行的左侧的标题文字 22 row.title = "Text Row" 23 //设置文本行的占位文字 24 row.placeholder = "Enter text here" 25 } 26 27 //创建一个手机行,允许用户在该行输入一个手机号码 28 <<< PhoneRow() 29 { 30 row in 31 //设置手机行的标识值 32 row.tag = "PhoneRow" 33 //设置手机行的左侧的标题文字 34 row.title = "Phone Row" 35 //设置手机行的占位文字 36 row.placeholder = "And numbers here" 37 } 38 39 //添加第二个表单段落 40 +++ Section("Section2") 41 42 //添加一个日期行,用户可以在此设置日期的值 43 <<< DateRow() 44 { 45 row in 46 //设置日期行的标识值 47 row.tag = "DateRow" 48 //设置日期行的左侧的标题文字 49 row.title = "Date Row" 50 //设置日期行的初始的值为当天的日期 51 row.value = NSDate() as Date 52 } 53 54 //创建一个按钮控件,并设置按钮的显示区域。 55 //当用户点击该按钮时,将获得用户在表单中输入的内容 56 let button = UIButton(frame: CGRect(x: 0, y: 280, width: 320, height: 40)) 57 //设置按钮控件的背景颜色 58 button.backgroundColor = UIColor.orange 59 //设置按钮控件的标题文字 60 button.setTitle("Get row values", for: .normal) 61 //给按钮控件绑定点击事件 62 button.addTarget(self, 63 action: #selector(ViewController.getRowValues(_:)), 64 for: .touchUpInside) 65 66 //将按钮控件添加到当前视图控制器的根视图 67 self.view.addSubview(button) 68 } 69 70 //添加一个方法,用来响应按钮的点击事件 71 func getRowValues(_ button : UIButton) 72 { 73 //通过标识的值,获得表单中的文本行 74 let row: TextRow? = form.rowBy(tag: "MyRowTag") 75 //获得用户在该位置输入的内容 76 let value = row?.value 77 //在控制台输出该内容 78 print("MyRowTag:\(value)") 79 80 //获得用户在表单输入的所有内容, 81 //该内容是一个字典对象。 82 let valuesDictionary = form.values() 83 //在控制台输出该字典内容 84 print("valuesDictionary:\(valuesDictionary)") 85 } 86 87 override func didReceiveMemoryWarning() { 88 super.didReceiveMemoryWarning() 89 // Dispose of any resources that can be recreated. 90 } 91 }