我试图基于多个条件隐藏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 :(得分:0)
对您来说可能为时已晚,但由于我在其他地方找不到正确的答案,因此我将其张贴在这里。
您可以使用输入字典中多行的结果隐藏条件,如下所示:
$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为例,但是如果您想将其用于其他类型的行,则条件语句应为true。