【问题标题】:Unable click on segmented picker in swift ui无法在 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 存在问题。当我删除这部分代码时,我可以切换两种场景,但我希望切换器始终位于顶部。

【问题讨论】:

    标签: ios swiftui swift5 picker


    【解决方案1】:

    我已经通过将选择器移动到 NavigationView -> NavigationLink.navigationBarItems 所在的视图来弄清楚

    来源选择器在 if 语句下,并显示何时需要。

    我现在的问题是:如果我有选择器作为 navigationBarItems 我如何处理该视图上的事件?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-06-24
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多