如何在SwiftUI中将导航栏标题居中?
var body: some View {
NavigationView {
.navigationBarTitle("Todo Lists")
}
}
答案 0 :(得分:2)
.navigationBarTitle
允许三种显示模式-.large
,.inline
和.automatic
。
从文档中:
case automatic
从上一个导航项继承显示模式。
case inline
在导航栏的标准范围内显示标题。
case large
在展开的导航栏中显示大标题。
因此,这取决于您说“在SwiftUI中如何使导航栏标题居中”的意思。您无法使显示模式为.large
的导航栏标题居中。您也不能左对齐或右对齐显示模式为.inline
的导航栏标题。如果您希望导航栏标题居中,则唯一的选择是使用.inline
。
var body: some View {
NavigationView {
CustomView()
.navigationBarTitle("Todo Lists", displayMode: .inline)
}
}
答案 1 :(得分:1)
您不能更改标题中的文本格式。但是这里有一个解决方法,它将按要求工作(没有大的间隙):
HStack{
Text("Todo Lists")
}
.multilineTextAlignment(.center)
.font(.largeTitle)
.padding(.bottom, -15.0)
NavigationView{
List{
ForEach(instrNewOld) { instrIdx in
SourceCodeView(cat: instrIdx)
}
}
.navigationBarTitle(Text("no text"), displayMode: .automatic)
.navigationBarHidden(true)
}
答案 2 :(得分:0)
这是一个选项。使用'navigationBarHidden(true)' 唯一的缺点是它在图像和表格视图之间造成了很大的差距。
struct ContentView: View{
var body: some View {
VStack
{
CircleImageView()
HeadLineView()
NavigationView
{
List
{
Text("Line 1")
Text("Line 2")
}
.navigationBarHidden(true)
}
}
}
}
struct HeadLineView : View
{
var body: some View{
Text("Headline").bold().font(Font(UIFont.systemFont(ofSize: 30.0)))
}
}