[Swift通天遁地]2、表格表單-(13)實時調整表單元素的顯示和隱藏

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-ohlevann-kn.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftgit

本文將演示如何顯示或隱藏指定的表單區域。github

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】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 }
相關文章
相關標籤/搜索