加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[Swift通天遁地]二、表格表单-(13)实时调整表单元素的显示和隐藏

发布时间:2020-12-14 05:08:04 所属栏目:百科 来源:网络整理
导读:本文将演示如何显示或隐藏指定的表单区域。 在项目导航区,打开视图控制器的代码文件【ViewController.swift】 现在开始编写代码,实现隐藏和显示表单区域的功能。 1 import UIKit 2 // 首先在当前类文件中, 3 // 引入以及安装的第三方类库 4 import Eureka

本文将演示如何显示或隐藏指定的表单区域。

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

现在开始编写代码,实现隐藏和显示表单区域的功能。

  1 import UIKit
  2 //首先在当前类文件中,
  3 //引入以及安装的第三方类库
  4 import Eureka
  5 
  6 //修改当前视图控制器类的父类的名称
  7 class ViewController: FormViewController {
  8     
  9     override func viewDidLoad() {
 10         super.viewDidLoad()
 11         
 12         //设置文本行的更新事件
 13         TextRow.defaultCellUpdate =
 14         {
 15             cell,row in
 16             //设置文本行的字体大小为12
 17             cell.textLabel?.font = UIFont.italicSystemFont(ofSize: 12)
 18         }
 19         
 20         //往表单中添加一个段落,并设置段落的标题文字
 21         form = Section("What do you want to talk about:")
 22             //往段落中添加一个分段行
 23             <<< SegmentedRow<String>("segments")
 24             {
 25                 //设置该行的选项
 26                 $0.options = ["Sport","Music","Films"]
 27                 //设置该行的默认值
 28                 $0.value = "Films"
 29             }
 30             //添加另一个段落
 31             +++ Section()
 32             {
 33                 //设置该段落的标识
 34                 $0.tag = "sport_s"
 35                 //设置该段落的显示属性。
 36                 //并设置当分段的值不等于运动时,将隐藏段落
 37                 $0.hidden = "$segments != ‘Sport‘"
 38             }
 39             //在段落中添加一个文本行
 40             <<< TextRow()
 41             {
 42                 //设置该行的标题文字
 43                 $0.title = "Which is your favourite soccer player?"
 44             }
 45             //在段落中添加一个文本行
 46             <<< TextRow()
 47             {
 48                 //设置该行的标题文字
 49                 $0.title = "Which is your favourite coach?"
 50             }
 51             //在段落中添加一个文本行
 52             <<< TextRow()
 53             {
 54                 /设置该行的标题文字
 55                 $0.title = "Which is your favourite team?"
 56             }
 57             
 58             //添加另一个段落
 59             +++ Section()
 60             {
 61                 //设置段落的标记的值
 62                 $0.tag = "music_s"
 63                 //设置该段落的显示属性。
 64                 //并设置当分段的值不等于音乐时,将隐藏段落
 65                 $0.hidden = "$segments != ‘Music‘"
 66             }
 67             //在段落中添加一个文本行
 68             <<< TextRow()
 69             {
 70                 //设置该行的标题文字
 71                 $0.title = "Which music style do you like most?"
 72             }
 73             //在段落中添加一个文本行
 74             <<< TextRow()
 75             {
 76                 //设置该行的标题文字
 77                 $0.title = "Which is your favourite singer?"
 78             }
 79             //在段落中添加一个文本行
 80             <<< TextRow()
 81             {
 82                 //设置该行的标题文字
 83                 $0.title = "How many CDs have you got?"
 84             }
 85             
 86             //添加一个新段落
 87             +++ Section()
 88             {
 89                 //设置段落的标记的值
 90                 $0.tag = "films_s"
 91                 //设置该段落的显示属性。
 92                 //并设置当分段的值不等于电影时,将隐藏段落
 93                 $0.hidden = "$segments != ‘Films‘"
 94             }
 95             //在段落中添加一个文本行
 96             <<< TextRow()
 97             {
 98                 //设置该行的标题文字
 99                 $0.title = "Which is your favourite actor?"
100             }
101             //在段落中添加一个文本行
102             <<< TextRow()
103             {
104                 //设置该行的标题文字
105                 $0.title = "Which is your favourite film?"
106             }
107             
108             //添加一个新段落
109             +++ Section()
110             //往段落中添加一个Switch表单行
111             <<< SwitchRow("Show Next Row")
112             {
113                 //设置该行的标题文字
114                 $0.title = $0.tag
115             }
116             //往段落中添加一个Switch表单行
117             <<< SwitchRow("Show Next Section")
118             {
119                 //设置该行的标题文字
120                 $0.title = $0.tag
121                 //给Switch表单行,添加一个交互事件。
122                 //当上一行的开关控件处于显示状态时,则显示当前的表单行。
123                 $0.hidden = .function(["Show Next Row"],{ form -> Bool in
124                     let row: RowOf<Bool>! = form.rowBy(tag: "Show Next Row")
125                     return row.value ?? false == false
126                 })
127             }
128             
129              //添加一个新段落,并设置段落的尾部内容
130             +++ Section(footer: "This section is shown only when ‘Show Next Row‘ switch is enabled")
131             {
132                 //给段落,添加一个交互事件。
133                 //当上一个段落中的第二个开关处于激活状态时,显示当前的段落,否则隐藏当前的段落。
134                 $0.hidden = .function(["Show Next Section"],{ form -> Bool in
135                     let row: RowOf<Bool>! = form.rowBy(tag: "Show Next Section")
136                     return row.value ?? false == false
137                 })
138             }
139             //在段落中添加一个文本行
140             <<< TextRow()
141             {
142                 //设置该行的标题文字
143                 $0.placeholder = "Gonna dissapear soon!!"
144             }
145     }
146 
147     override func didReceiveMemoryWarning() {
148         super.didReceiveMemoryWarning()
149         // Dispose of any resources that can be recreated.
150     }
151 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读