在SwiftUI中,如何将选项卡放在视图顶部的TabbedView中?

时间:2019-06-07 15:47:10

标签: view tabbed swiftui

我有一个视图,该视图的底部带有标签,views中的一个具有subviews,为了在视觉上分离逻辑,我将子视图的标签放在该视图的顶部,并附带以下内容:代码,效果很好:

self.tabbar.frame = CGRect( x: 0,
                            y: view.safeAreaInsets.top,
                            width: self.view.frame.size.width,
                            height: 50)

如何在SwiftUI中做到这一点?

1 个答案:

答案 0 :(得分:0)

为此,您可以将标签页视图创建为单个标签页的容器,例如...

struct TabbedView: View {

    @State private var selectedTab: Int = 0

    var body: some View {
        VStack {
            SegmentedControl(selection: $selectedTab) {
                Text("First").tag(0)
                Text("Second").tag(1)
                Text("Third").tag(2)
            }

            if seletcedTab == 0 {
                FirstTabView()
            } else if selectedTab == 1 {
                SecondTabView()
            } else {
                ThirdTabView()
            }
        }
    }
}

这样做,您将有条件地根据分段控件的值填充“标签页”。

通过使用@State$selectedTab,分段控件将更新selectedTab值,然后重新呈现视图,并根据新的selectedTab值替换页面。