Swift Eureka 隐藏更改部分

Swift Eureka Hide Section On Change

我正在使用找到的 Eureka Swift 表单库 here

我有一个文本字段,每当您开始在其中输入内容时,我希望隐藏表单的其他部分。我一开始只是试图隐藏 1 个部分,但当我开始在该字段中输入时没有任何反应。我的代码如下:

  form  +++ Section("Device Search")

        <<< IntRow()
            {
                [=11=].title = "Asset Tag"
                [=11=].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()
                {
                    [=11=].title = version
                    [=11=].tag = [=11=].title


            }
        }

此外,有没有一种方法可以使用 IntRow 但仅删除该行的格式化程序?

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

将这一行 [=14=].formatter = nil 添加到这一行的正下方 [=15=].placeholder = "Enter Asset Tag #"

你的第一个问题,如何在EurekaForm中隐藏一个section,首先你的部分初始化不是你想的那样,我会解释一下,你认为你正在用标签初始化你的部分,但是在 init 方法的部分定义 none 中使用 tag 作为参数所以要获得正确的部分你需要改变你的部分初始化这个

        +++ Section("iOS Version"){ //"iOS Version" is actually the header text"
            [=10=].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
                }
        }

之后你的 header 命名为“iOS 版本”在你的 IntRow

上写下任何数字后被隐藏

完整代码

form  +++ Section("Device Search")
            
            <<< IntRow()
                {
                    [=13=].title = "Asset Tag"
                    [=13=].placeholder = "Enter Asset Tag #"
                    [=13=].formatter = nil
                }
                
                .onChange { row in
                    if let section = self.form.sectionBy(tag: "test")
                    {
                        section.hidden = true
                        section.evaluateHidden()
                    }
            }
            
            +++ Section("iOS Version"){
                [=13=].tag = "test"
        }
        
        for version in countArray
        {
            form.last! <<< CheckRow()
                {
                    [=13=].title = version
                    [=13=].tag = [=13=].title
            }
        }