SwiftUI Picker 视图在 TabView 中消失
Posted
技术标签:
【中文标题】SwiftUI Picker 视图在 TabView 中消失【英文标题】:SwiftUI Picker view disappears in TabView 【发布时间】:2019-12-22 04:06:04 【问题描述】:带有两个选项卡的简单 SwiftUI TabView,每个选项卡上使用一个简单的 Picker 视图。 当应用程序启动时,Picker 可见并更新变量。 选择第二个选项卡,选择器消失。
let names = ["Fred", "Wilma", "Betty", "Barney"]
struct WordPickerView: View
@State var kind: Int = 0
var body: some View
VStack
Text(names[kind])
Picker(selection: $kind, label: EmptyView())
ForEach(0 ..< names.count) index in
Text(names[index]).tag(index)
.pickerStyle(SegmentedPickerStyle())
struct ContentView: View
@State private var selection = 0
var body: some View
TabView(selection: $selection)
WordPickerView()
.font(.title)
.tabItem
VStack
Image("first")
Text("First")
.tag(0)
WordPickerView()
.font(.title)
.tabItem
VStack
Image("second")
Text("Second")
.tag(1)
【问题讨论】:
【参考方案1】:在这种情况下(当您拥有绝对平等的观点时)最好使用.id
使它们独一无二。
所以你的情况是固定的,比方说,如下
Picker(selection: $kind, label: EmptyView())
ForEach(0 ..< names.count) index in
Text(names[index]).tag(index)
.pickerStyle(SegmentedPickerStyle())
.id(UUID().uuidString)
【讨论】:
来自 Apple 的一些好消息。此错误已在 ios 13.4 中修复。您无需向 Picker 添加 id。 每次创建View时添加不同的id,会导致奇怪的动画效果以上是关于SwiftUI Picker 视图在 TabView 中消失的主要内容,如果未能解决你的问题,请参考以下文章