Swift Eureka 隐藏部分更改

Mar*_*eli 4 ios swift swift3 eureka-forms

我正在使用此处找到的 Eureka Swift 表单库。

我有一个文本字段,每当您开始输入时,我都希望隐藏表单的其他部分。我一开始只是试图隐藏 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


            }
        }
Run Code Online (Sandbox Code Playgroud)

另外,有没有办法使用 IntRow 但只删除该行的格式化程序?

Rei*_*ian 8

关于您的第二个问题 ,有没有办法使用 IntRow 但仅删除该行的格式化程序?

在这一行的$0.formatter = nil正下方添加这一行$0.placeholder = "Enter Asset Tag #"

您的第一个问题,如何隐藏 a sectionin EurekaForm,首先您的部分初始化不是您认为的那样,我将解释自己,您认为您正在使用标签初始化您的部分,但是在部分定义中没有任何 init 方法tag用作参数所以要获得正确的部分,您需要更改此部分的部分初始化

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

之后你需要修改这个

.onChange { row in

              self.form.sectionBy(tag: "iOS Version")?.hidden = true
        }
Run Code Online (Sandbox Code Playgroud)

通过这个

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

之后,在您写下任何数字后,您的名为“iOS 版本”的标题将被隐藏 IntRow

完整代码

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
            }
        }
Run Code Online (Sandbox Code Playgroud)