Swift Eureka 隐藏更改部分

Posted

技术标签:

【中文标题】Swift Eureka 隐藏更改部分【英文标题】:Swift Eureka Hide Section On Change 【发布时间】:2017-08-26 22:39:46 【问题描述】:

我正在使用 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】:

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

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

你的第一个问题,如何在EurekaForm中隐藏一个section,首先你的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
            
        

【讨论】:

以上是关于Swift Eureka 隐藏更改部分的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Eureka 框架根据所选值隐藏行/部分

Swift Eureka forms:如何限制多值部分中的行数?

Eureka Forms Swift 启用和禁用按钮

在 Eureka TextRow 中更改 UIImageView 的高度

Swift 3 Eureka 验证 UILabel 有错误

Swift Eureka自定义细胞图像全屏