无法在 swift ui 中单击分段选择器
Posted
技术标签:
【中文标题】无法在 swift ui 中单击分段选择器【英文标题】:Unable click on segmented picker in swift ui 【发布时间】:2020-05-23 09:45:20 【问题描述】:我正在为不同的场景重复使用一个视图。一个是模态窗口,第二个也是模态的,但在导航视图中。
我的问题是,只有当视图是模式视图而不是导航视图时,我才能在选择器中的选项之间切换。如果在导航视图中,我将无法单击选择器中显示的任何选项。
ZStack
Color("my-orange").edgesIgnoringSafeArea(.top)
VStack(alignment: .leading)
if !self.picture
Image("van")
.resizable()
.frame(width: UIScreen.main.bounds.width, height: 275)
.padding(.leading)
Picker(selection: $langauge, label: Text("Test"))
ForEach(0..<contentLanguages.languages.count, id:\.self) index in
Group
if self.contentLanguages.languages[index].isOn
Text(self.contentLanguages.languages[index].country).tag(index)
.foregroundColor(.white)
.pickerStyle(SegmentedPickerStyle())
.padding([.leading, .trailing], 60)
.padding([.top, .bottom])
.background(Color("my-orange"))
Spacer()
TabBar(index: $index)
.offset(y: self.picture ? -30 : 0)
.edgesIgnoringSafeArea(.all)
这是我无法在选项之间切换的视图的外观
在这里我可以在同一个视图中切换,但不能作为导航视图打开
更新:
我发现 .edgeIgorningSafeArea 存在问题。当我删除这部分代码时,我可以切换两种场景,但我希望切换器始终位于顶部。
【问题讨论】:
【参考方案1】:我已经通过将选择器移动到 NavigationView -> NavigationLink.navigationBarItems 所在的视图来弄清楚
来源选择器在 if 语句下,并显示何时需要。
我现在的问题是:如果我有选择器作为 navigationBarItems 我如何处理该视图上的事件?
【讨论】:
以上是关于无法在 swift ui 中单击分段选择器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift UI 中将嵌套的 JSON 值显示到选取器视图中?