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

如何让SwiftUI导航栏始终保持大标题显示状态

SwiftUI 固定导航栏大标题实现方案

对应UIKit中navigationItem.largeTitleDisplayMode = .always的效果,SwiftUI可以通过navigationBarTitleDisplayMode修饰符实现,具体用法如下:

基础实现(iOS 16+)

import SwiftUI

struct LargeTitleDemoView: View {
    var body: some View {
        NavigationStack {
            // 可滚动内容
            List(0..<100) { index in
                Text("列表项 \(index)")
            }
            .navigationTitle("固定大标题")
            // 核心配置:强制始终显示大标题
            .navigationBarTitleDisplayMode(.large)
        }
    }
}

兼容iOS 15及更低版本

如果需要支持旧版本系统,替换NavigationStack为NavigationView即可:

struct LargeTitleDemoView: View {
    var body: some View {
        NavigationView {
            List(0..<100) { index in
                Text("列表项 \(index)")
            }
            .navigationTitle("固定大标题")
            .navigationBarTitleDisplayMode(.large)
        }
        .navigationViewStyle(.stack)
    }
}

注意说明

  • navigationBarTitleDisplayMode(.large) 枚举值完全对应UIKit的largeTitleDisplayMode = .always,会强制导航栏保持大标题样式,滚动时不会自动缩小为内嵌小标题
  • 修饰符需要添加在NavigationStack/NavigationView的子视图上,不要直接作用于导航容器本身
  • 子页面的navigationBarTitleDisplayMode配置优先级高于父级导航容器的全局配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:39:02