zoukankan      html  css  js  c++  java
  • [Swift通天遁地]二、表格表单-(13)实时调整表单元素的显示和隐藏

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

    目录:[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 }
  • 相关阅读:
    linux环境基于python语言docx转pdf
    python pip install XXX出现报错问题
    最干净的pyinstaller打包成exe应用程序方法
    python pyinstaller 打包程序报错解决
    sklearn中predict()与predict_proba()用法区别
    机器学习(数据挖掘十个重要算法)
    在后台管理器上互动,获取后台输入的信息。
    求数组里面最大值,最小值
    数组的排序
    冒泡法的实例(给数组排序)
  • 原文地址:https://www.cnblogs.com/strengthen/p/10202214.html
Copyright © 2011-2022 走看看