为有牺牲多壮志,敢教日月换新天。

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

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10202214.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

目录:[Swift]通天遁地Swift

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

在项目导航区,打开视图控制器的代码文件【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 }

 

posted @ 2018-12-31 15:32  为敢技术  阅读(153)  评论(0编辑  收藏  举报