SwiftUI Picker 视图中没有显示值
No display of value in SwiftUI Picker view
我最近更改了 SwiftUI 中的一些选择器代码,以使用 CaseIterable 枚举而不是项目数组。
这是枚举:
enum ReturnTypes : String, CaseIterable {
case Scaler
case Vector
case Matrix
}
这是选择器代码:
NavigationView {
Form {
Picker("Return Type:", selection: $task.returnType) {
ForEach(ReturnTypes.allCases, id: \.self) { type in
Text(type.rawValue)
}
}
}
}
当我之前将数据放在一个数组中并使用
let returnTypes = ["Scaler", "Vector", "Matrix"]
...
Picker("Return Type:", selection: $task.returnType) {
ForEach(0..<returnTypes.count, id: \.self) {
Text(returnTypes[[=12=]])
}
}
task.returnType 的当前值显示在 V 形旁边的表单选择器行上。使用枚举,task.returnType 不会显示在人字形旁边,当我向下钻取到选择器 selection 视图时,没有任何检查,即使我 select 一个项目,我仍然不'在人字形旁边显示任何内容。还有其他人 运行 关注这个问题吗?
所选内容必须与选择器数据属于同一类型,而不是文本标签,如下面的工作示例所示。使用 Xcode 11.4 / iOS 13.4.
测试
struct ContentView: View {
@State private var returnType: ReturnTypes = .Scaler
var body: some View {
NavigationView {
Form {
Picker("Return Type:", selection: $returnType) {
ForEach(ReturnTypes.allCases, id: \.self) { type in
Text(type.rawValue)
}
}
}
}
}
}
我最近更改了 SwiftUI 中的一些选择器代码,以使用 CaseIterable 枚举而不是项目数组。
这是枚举:
enum ReturnTypes : String, CaseIterable {
case Scaler
case Vector
case Matrix
}
这是选择器代码:
NavigationView {
Form {
Picker("Return Type:", selection: $task.returnType) {
ForEach(ReturnTypes.allCases, id: \.self) { type in
Text(type.rawValue)
}
}
}
}
当我之前将数据放在一个数组中并使用
let returnTypes = ["Scaler", "Vector", "Matrix"]
...
Picker("Return Type:", selection: $task.returnType) {
ForEach(0..<returnTypes.count, id: \.self) {
Text(returnTypes[[=12=]])
}
}
task.returnType 的当前值显示在 V 形旁边的表单选择器行上。使用枚举,task.returnType 不会显示在人字形旁边,当我向下钻取到选择器 selection 视图时,没有任何检查,即使我 select 一个项目,我仍然不'在人字形旁边显示任何内容。还有其他人 运行 关注这个问题吗?
所选内容必须与选择器数据属于同一类型,而不是文本标签,如下面的工作示例所示。使用 Xcode 11.4 / iOS 13.4.
测试struct ContentView: View {
@State private var returnType: ReturnTypes = .Scaler
var body: some View {
NavigationView {
Form {
Picker("Return Type:", selection: $returnType) {
ForEach(ReturnTypes.allCases, id: \.self) { type in
Text(type.rawValue)
}
}
}
}
}
}