如何将 SwiftUI 导航栏标题对齐以居中?

Gre*_*reg 6 ios13 swiftui xcode11

如何在 SwiftUI 中居中导航栏标题?

var body: some View {
    NavigationView {
        .navigationBarTitle("Todo Lists")
    }
}
Run Code Online (Sandbox Code Playgroud)

Edu*_*sov 22

此外,这里还展示了一种很棒的方法。

当您需要自定义导航栏时,它是完美的。关键字.principal是为了定位

NavigationView {
    Text("Hello, SwiftUI!")
        .navigationBarTitleDisplayMode(.inline)
        .toolbar {
            ToolbarItem(placement: .principal) {
                HStack {
                    Image(systemName: "sun.min.fill")
                    Text("Title").font(.headline)
                }
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案,这就像一个魅力!谢谢 (2认同)

gra*_*ell 11

.navigationBarTitle允许三种显示模式- ,.large,.inline和.automatic。

从文档:

case automatic
Run Code Online (Sandbox Code Playgroud)

继承上一个导航项的显示模式。

case inline
Run Code Online (Sandbox Code Playgroud)

在导航栏的标准范围内显示标题。

case large
Run Code Online (Sandbox Code Playgroud)

在展开的导航栏中显示大标题。

因此,当您说“一个人如何在 SwiftUI 中将导航栏标题居中?”时,这取决于您的意思。您不能将显示模式为 的导航栏标题居中.large。您也不能左对齐或右对齐显示模式为 的导航栏标题.inline。如果您想要一个居中的导航栏标题,那么您唯一的选择就是使用.inline.

var body: some View {
    NavigationView {
        CustomView()
            .navigationBarTitle("Todo Lists", displayMode: .inline)
    }
}
Run Code Online (Sandbox Code Playgroud)