【发布时间】:2020-07-08 10:14:43
【问题描述】:
问题:我有一个相当大的 SwiftUI 视图,它根据我的模型数据添加了国家/地区代码。我的感觉是我应该提取一个子视图,然后将国家代码传入,然后使用switch,但我只是想检查一下我没有遗漏任何东西并使这变得太复杂。
SwiftUI 有一个非常好的方法来处理基于 Bool 的两个可能选项,这很好,因为它修改了单个 View。
struct TestbedView_2: View {
var isRed: Bool
var body: some View {
Text("Bilbo").foregroundColor(isRed ? Color.red : Color.blue)
}
}
另一方面,如果您的模型呈现非二元选择,您可以使用switch 语句。但是,这会根据选择的情况返回一个独立的View,从而导致重复代码。
struct TestbedView_3: View {
var index: Int
var body: some View {
switch(index) {
case 1:
Text("Bilbo").foregroundColor(Color.red)
case 2:
Text("Bilbo").foregroundColor(Color.green)
default:
Text("Bilbo").foregroundColor(Color.blue)
}
}
}
【问题讨论】:
-
我认为这是一个简化的例子。你会展示更多真实的代码/你试图实现的部分,替代品可能取决于输入吗?
标签: swift switch-statement boolean swiftui