Swift Eureka:更改时隐藏部分

4
我正在使用Eureka Swift表单库,可以在这里找到。
我有一个文本框,每当你开始在其中输入内容时,我希望表单的其他部分被隐藏。我一开始只尝试隐藏了一个部分,但当我开始在该字段中输入时,没有任何反应。我的代码如下:
  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个回答

8

关于您的第二个问题:有没有一种方法可以使用IntRow,但仅针对该行删除格式?

请在此代码下方添加此行$0.formatter = nil$0.placeholder = "输入资产标记 #"

您的第一个问题是如何隐藏EurekaForm中的section,首先您的部分初始化不是您想象的那样,我会为您解释。您认为您正在使用标记初始化您的部分,但在部分定义中,没有任何init方法使用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版本”的头部将被隐藏。

完整代码

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
            }
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接