[Swift通天遁地]二、表格表单-(9)快速创建一个美观强大的表单

本文将演示如何利用第三方库,快速创建一个美观强大的表单

首先确保在项目中已经安装了所需的第三方库。

点击【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 }

猜你喜欢

转载自www.cnblogs.com/strengthen/p/10195247.html