struct YourView: View {
init() {
//Use this if NavigationBarTitle is with Large Font
//UINavigationBar.appearance().largeTitleTextAttributes = [.font : UIFont(name: "Georgia-Bold", size: 20)!]
//Use this if NavigationBarTitle is with displayMode = .inline
UINavigationBar.appearance().titleTextAttributes = [.font : UIFont(name: "Georgia-Bold", size: 20)!]
}
var body: some View {
NavigationView {
Text("Hello World!")
//.navigationBarTitle("TEST")
.navigationBarTitle (Text("TEST"), displayMode: .inline)
}
}
}
// Body is in the same ContentView struct. Settings from init will be used in navigationBarTitle
// listView() is just a custom function returning a SwiftUI's List()
var body: some View {
NavigationView {
listView()
.navigationBarTitle(
Text(self.accts.selCount <= 0 ? "Accounts" : "\(self.accts.selCount) selected")
,
displayMode:.large)
6条答案
按热度按时间eimct9ow1#
在SwiftUI中,此时我们不能直接更改
navigationBarTitle
字体,但可以像这样更改navigationBar外观,我希望它能帮助你。谢谢你!
rfbsl7qr2#
你不能用
.font
修饰符改变navigationBarTitle
的字体(在Xcode 11-Beta2中测试)。但是你可以构建自己的自定义
navigationBarView
,并像这样完全访问它的任何子视图:请注意,在此实现中,您将丢失
LargeTitleStyle
。rks48beu3#
我认为你必须创建一个NavigationBarBuilder。
您可以在内容视图中使用它。
祝你好运...
p5cysglq4#
在SwiftUI 5中,UINavigationBar.appearance().titleTextAttributes不起作用。您需要使用以下选项之一来更改标题中的字体:
其中.text-style可以在UIFont.TextStyle文档中找到,例如
更新1(回复评论中关于具体代码的问题)
...
那么我的身体里就有这个您可能应该注意displayMode参数
kg7wmglp5#
在我的情况下,上述答案不起作用。下面的代码运行良好。
t2a7ltrp6#
尝试添加导航标题如下和享受。在[Xcode 14.3 - ios 16.4]中测试