You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NavigationStack嵌套分页TabView忽略安全区后底部出现额外内边距问题

以下是复现问题的代码:

struct ContentView: View {
    var body: some View {
        NavigationStack() {
            TabView {
                Color(.green)
            }
            .navigationTitle("Hello")
            .tabViewStyle(.page)
            .ignoresSafeArea(edges: .bottom)
        }
    }
}

问题现象

  • 视图初始显示正常,但向上滑动交互后,屏幕底部会出现额外内边距
  • 缓慢滑动时,顶部标题无法转换为内联样式,处于“冻结”状态,后续滑动操作也无法更新标题状态

调试分析

通过视图层级调试器确认,这是SwiftUI与UIKit互操作的兼容性问题:分页样式的TabView会回退到UIKit实现,视图层级中可见UIKit视图及UIHostingController。具体问题点:

  • SwiftUIPagingCollectionView高度设置正确,但其子视图UIKitPagingCell带有额外内边距,导致底部留白异常
  • 标题冻结状态下,UIKitNavigationBar下存在两个标题视图,引发显示冲突

环境:Xcode 15、iOS 17

问题截图

初始视图
滑动后视图
冻结的标题
视图层级

内容的提问来源于stack exchange,提问作者faircloud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:56:05