簡體   English   中英

swift Eureka 在多個條件下隱藏行

[英]swift Eureka hiding row on multiple conditions

我試圖根據多個條件隱藏 ActionSheetRow,我試圖設置一個 if 語句,但這不起作用。 我想知道是否有人嘗試過或遇到過這種情況?

<<< SwitchRow("switchRow"){
            $0.title = "The switch to hide the row when on"
        }
        <<< ActionSheetRow<String>("number") {
            $0.title = "How many sports will be played"
            $0.hidden = $0.hidden = Condition.function(["switchRow"], { form in
                return ((form.rowBy(tag: "switchRow") as? SwitchRow)?.value ?? false)
            })
            $0.selectorTitle = "How many sports will be played"
            while i <= places.count{

                choices.append("\(i)")

                i += 1

         }
            $0.options = choices
    }
        <<< ActionSheetRow<String>("firstSport"){
            $0.hidden = Condition.function(["playSport"], { form in
                return ((form.rowBy(tag: "playSport") as? SwitchRow)?.value ?? false)
            })
            $0.title = "Which is the first sport"
            $0.selectorTitle = "Which is the first sport?"
            $0.options = ["NBA", "MLB", "NFL",]
    }
<<< ActionSheetRow<String>("secondSport"){

        $0.title = "Which is the second sport"
        $0.selectorTitle = "Which is the second sport?"
        $0.options = ["NBA", "MLB", "NFL"]

        $0.hidden = Condition.function(["number"])
        { form in
            if let section = form.rowBy(tag: "number") as? ActionSheetRow<String> {
                if section.value == "1" {
                    return true
                }
            }
            return false
        }
    }

如果開關打開或用戶在“數字”ActionSheetRow 中選擇 1,我希望隱藏“secondSport”ActionSheetRow。 這是可能的嗎?

謝謝大家的反饋歡迎。

對你來說可能為時已晚,但我會在這里發布,因為我沒有在其他地方找到正確的答案。

您可以將輸入字典中多行的結果用於隱藏的條件,如下所示:

$0.hidden = .function(["SwitchRow1","SwitchRow2"], { form -> Bool in
                        let c1: Bool = ((form.rowBy(tag: "SwitchRow1") as? SwitchRow)?.value ?? false)
                        let c2: Bool = ((form.rowBy(tag: "SwitchRow2") as? SwitchRow)?.value ?? false)
                        let finalBool = c1 && c2
                        return (!finalBool)
                    })
                }

我以 SwitchRow 為例,但如果您想將它用於其他類型的行,則條件應該成立。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM