在 NavigationTitle 下添加副标题
Adding a Subtitle under NavigationTitle
假设我有以下代码:
struct SwiftUIView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello")
Text("World")
}
.navigationTitle("SwiftUI")
}
}
}
我想在 SwiftUI 下添加一个较小的字幕。我尝试添加 .navigationSubtitle("")
之类的内容,但它不存在。我也尝试阅读 documentation,它确实提到了 func navigationSubtitle(_ subtitle: Text) -> some View
,但我只是不确定如何将其添加到我的代码中。提前致谢!
您可以在 principal
位置添加 ToolbarItem
:
struct SwiftUIView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello")
Text("World")
}
// .navigationTitle("SwiftUI") this won't make any changes now
.toolbar {
ToolbarItem(placement: .principal) {
VStack {
Text("title")
Text("subtitle")
}
}
}
}
}
}
缺点是它会覆盖导航标题,因此使用 navigationTitle
所做的任何更改都不会显示。
我最终做了一些不同的事情:我没有将“SwiftUI”作为导航标题,而是将它与 body 的其余部分一起放在 VStack 中,如下所示:
struct SwiftUIView: View {
var body: some View {
NavigationView {
VStack {
//Header
VStack(alignment: .leading, spacing: 5) {
Text("SwiftUI")
.font(.system(size: 35, weight: .semibold, design: .default))
Text("Subtitle")
}
.padding()
.padding(.leading, -110) //I'm still not sure how to give it a leading alignment without hardcoding it
Divider()
Spacer()
//Body
VStack {
Text("Hello")
Text("World")
}
Spacer()
//Navbar title
}
}
}}
谢谢大家的帮助!
您可以这样做:
.navigationBarItems(leading:
VStack(alignment: .leading, spacing: 5) {
Text("SwiftUI")
.font(.system(size: 35, weight: .semibold, design: .default))
Text("Subtitle")
}
)
假设我有以下代码:
struct SwiftUIView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello")
Text("World")
}
.navigationTitle("SwiftUI")
}
}
}
我想在 SwiftUI 下添加一个较小的字幕。我尝试添加 .navigationSubtitle("")
之类的内容,但它不存在。我也尝试阅读 documentation,它确实提到了 func navigationSubtitle(_ subtitle: Text) -> some View
,但我只是不确定如何将其添加到我的代码中。提前致谢!
您可以在 principal
位置添加 ToolbarItem
:
struct SwiftUIView: View {
var body: some View {
NavigationView {
VStack {
Text("Hello")
Text("World")
}
// .navigationTitle("SwiftUI") this won't make any changes now
.toolbar {
ToolbarItem(placement: .principal) {
VStack {
Text("title")
Text("subtitle")
}
}
}
}
}
}
缺点是它会覆盖导航标题,因此使用 navigationTitle
所做的任何更改都不会显示。
我最终做了一些不同的事情:我没有将“SwiftUI”作为导航标题,而是将它与 body 的其余部分一起放在 VStack 中,如下所示:
struct SwiftUIView: View {
var body: some View {
NavigationView {
VStack {
//Header
VStack(alignment: .leading, spacing: 5) {
Text("SwiftUI")
.font(.system(size: 35, weight: .semibold, design: .default))
Text("Subtitle")
}
.padding()
.padding(.leading, -110) //I'm still not sure how to give it a leading alignment without hardcoding it
Divider()
Spacer()
//Body
VStack {
Text("Hello")
Text("World")
}
Spacer()
//Navbar title
}
}
}}
谢谢大家的帮助!
您可以这样做:
.navigationBarItems(leading:
VStack(alignment: .leading, spacing: 5) {
Text("SwiftUI")
.font(.system(size: 35, weight: .semibold, design: .default))
Text("Subtitle")
}
)