最近,我一直在研究新的 SwiftUI 框架。
我对框架的工作原理有基本的了解,但我想不出更改导航栏标题属性的方法。
我使用的是最新的 Xcode 11 beta 5 和相应的 swift/swiftUI 版本
我已经尝试了一些东西。 我尝试的第一件事是只向文本添加修饰符,但 SwiftUI 似乎以某种方式忽略了导航栏环境中的修饰符。
我尝试的第二件事是通过 UINavigationBar.apperance().titleTextAttributes = ...
但他们似乎在最新的测试版中删除了自定义 UINavigationBar 的 titleTextAttributes 的能力。
//First thing:
List(myData) {
...
}
.navigationBarTitle(Text("My title").font(myFont))
// Second thing
UINavigationBar.appearance().titleTextAttributes = myAttrs
我希望导航栏标题有我的自定义字体,但它始终是苹果默认字体。
最佳答案
在SwiftUI中,此时我们不能直接改变navigationBarTitle
字体,但是你可以这样改变navigationBar的外观,
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(Text("Dashboard").font(.subheadline), displayMode: .large)
//.navigationBarTitle (Text("Dashboard"), displayMode: .inline)
}
}
}
希望对您有所帮助。谢谢!!
关于ios - 如何在 SwiftUI 中更改导航栏标题的文本属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57370107/