问题描述
如标题
原因分析
在SwiftUI中,tabView可能是基于ScrollView或者会为其子View自动套用ScrollView,其子View既可以水平滚动,也可以纵向滚动。
问题解决
手动为tabView embed一个ScrollView,然后禁用它的bounce属性,例如:
var body: some View {
ScrollView {
TabView(selection: $currentTabIndex) {
StartView()
.tag(-1)
CheckNowView()
.tag(0)
}
.frame(
width: UIScreen.main.bounds.width ,
height: UIScreen.main.bounds.height
)
.tabViewStyle(PageTabViewStyle())
}
.edgesIgnoringSafeArea(.all)
.onAppear(perform: {
UIScrollView.appearance().bounces = false
UIScrollView.appearance().alwaysBounceVertical = false
UIScrollView.appearance().alwaysBounceHorizontal = false
})
}
注意,用上述方法的同时需确保子View中所有View的宽度和高度不能超过屏幕尺寸