Swift Eureka隐藏变革部分

时间:2017-08-26 22:39:47

标签: ios swift swift3 eureka-forms

我正在使用找到here的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


            }
        }

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

1 个答案:

答案 0 :(得分:2)

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

在此$0.formatter = nil

的正下方添加此行$0.placeholder = "Enter Asset Tag #"

您的第一个问题,如何在section中隐藏EurekaForm,首先您的部分初始化不是您认为的,我会解释自己,您认为您正在使用标记初始化您的部分,但在部分定义中,没有任何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
            }
        }