我有一个视图,该视图的底部带有标签,views
中的一个具有subviews
,为了在视觉上分离逻辑,我将子视图的标签放在该视图的顶部,并附带以下内容:代码,效果很好:
self.tabbar.frame = CGRect( x: 0,
y: view.safeAreaInsets.top,
width: self.view.frame.size.width,
height: 50)
如何在SwiftUI
中做到这一点?
答案 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
值替换页面。