SwiftUI 解决tabView子View可以滚动的问题

问题描述

如标题

原因分析

在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的宽度和高度不能超过屏幕尺寸

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值