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

Posted

技术标签:

【中文标题】如何使用 Eureka 框架根据所选值隐藏行/部分【英文标题】:How to hide a row / section based on selected value with Eureka framework 【发布时间】:2016-01-31 16:25:38 【问题描述】:

我尝试使用Eureka framework 创建调查表。但是,如何隐藏特定选项选择的部分?

请帮忙!

let fruits = ["Apple", "Banana", "Coconut"]

form +++= SelectableSection<ImageCheckRow<String>, String>()  section in
    section.header = HeaderFooterView(title: "What is your favorite fruit ?")


for fruit in fruits 
    form.last! <<< ImageCheckRow<String>(fruit)  lrow in
        lrow.title = fruit
        lrow.selectableValue = fruit
    


form +++ Section("xxxxxx Question") 
    //hide this section when apple is selected
    //$0.hidden =


form.last! <<< TextAreaRow() 
    $0.title = "Enter description here..."

【问题讨论】:

【参考方案1】:

首先为您的水果部分设置一个标签,例如“fruits_section”。然后你可以像这样设置隐藏变量:

$0.hidden = Condition.Function([]) 
             form in
                if let section = form.sectionByTag("fruits_section") as? SelectableSection<ImageCheckRow<String>, String> 
                    if section.selectedRow()?.title == "Apple" 
                        return true
                    
                
                return false
            

要在第一部分中选择一行时强制评估此隐藏条件,您可以使用第一部分的onSelectSelectableRow

(section as! SelectableSection<ImageCheckRow<String>, String>).onSelectSelectableRow =  [weak self] _ in
     self?.form.sectionByTag("last_section_tag")?.evaluateHidden()

不要忘记为这两个部分设置正确的标签。

如果您只有两个部分,您可以使用form.firstform.last 而不是使用标签,但不建议这样做。

【讨论】:

您好 Mathias Claassen,感谢您的回复。你能帮我解决另一个问题吗?谢谢。 你写的第二段代码,它必须在Form里面的什么地方???

以上是关于如何使用 Eureka 框架根据所选值隐藏行/部分的主要内容,如果未能解决你的问题,请参考以下文章

根据所选列中的文本调整行高

重力根据所选值的数量形成条件逻辑

无法从离子中的下拉列表中获取所选值

Angular-Kendo 在更改时自动完成所选值

如何防止Twitter typeahead用所选值填充输入?

所选值的总最大值