2017-08-26 85 views
1

我正在使用找到的Eureka Swift表单库hereSwift Eureka隐藏科更改

我有一个文本框,每当你开始输入它,我想表单的其他部分被隐藏。我开始时只是试图隐藏1部分,但当我开始在该领域打字时没有任何反应。我的代码如下:

form +++ Section("Device Search") 

     <<< IntRow() 
      { 
       $0.title = "Asset Tag" 
       $0.placeholder = "Enter Asset Tag #" 
      } 

      .onChange { row in 

       self.form.sectionBy(tag: "iOS Version")?.hidden = true 
     } 

     +++ Section("iOS Version") 


     for version in countArray 
     { 

      form.last! <<< CheckRow() 
       { 
        $0.title = version 
        $0.tag = $0.title 


      } 
     } 

此外,有没有使用一个IntRow但拆下格式只是该行的方法吗?

回答

1

关于你的第二个问题有没有办法使用一个IntRow但只删除格式化程序?

添加此行$0.formatter = nil略低于这一$0.placeholder = "Enter Asset Tag #"

你的第一个问题,如何在EurekaFormsection隐藏,首先你的所有部分初始化的是不是你想的是,我会解释自己,你认为你是initalizating与标签的部分,但在段定义没有初始化的方法使用tag作为参数,以便得到正确的部分,你需要改变你的段初始化为这一个

 +++ Section("iOS Version"){ //"iOS Version" is actually the header text" 
      $0.tag = "test" //this is the tag 
     } 

后,你需要通过修改这个

.onChange { row in 

       self.form.sectionBy(tag: "iOS Version")?.hidden = true 
     } 

这个

.onChange { row in 
       if let section = self.form.sectionBy(tag: "test") 
       { 
        section.hidden = true 
        section.evaluateHidden() //you are missing calling this method 
       } 
     } 

之后,你写的任何数量上的IntRow后您的名为“IOS版本”标头是隐藏

Full Code

form +++ Section("Device Search") 

      <<< IntRow() 
       { 
        $0.title = "Asset Tag" 
        $0.placeholder = "Enter Asset Tag #" 
        $0.formatter = nil 
       } 

       .onChange { row in 
        if let section = self.form.sectionBy(tag: "test") 
        { 
         section.hidden = true 
         section.evaluateHidden() 
        } 
      } 

      +++ Section("iOS Version"){ 
       $0.tag = "test" 
     } 

     for version in countArray 
     { 
      form.last! <<< CheckRow() 
       { 
        $0.title = version 
        $0.tag = $0.title 
      } 
     }