我可以调整导航栏外观的所有其他方面 - 但“后退”的字体仍然很顽固。
下面的 MWE 显示了我尝试过但无济于事的四件事
1)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedString.Key.font: UIFont(name: "Helvetica-Bold", size: 4)!], for: .normal)
return true
}
2) 3) 4)
自定义导航 Controller 类:UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
UIBarButtonItem.appearance().setTitleTextAttributes(
[
NSAttributedString.Key.font : UIFont(name: "Rockwell", size: 4)!,
NSAttributedString.Key.foregroundColor : UIColor.white,
], for: .normal )
navigationItem.backBarButtonItem?.setTitleTextAttributes([NSAttributedString.Key.font: UIFont(name: "Chalkduster", size: 7)!], for: .normal)
navigationBar.topItem?.backBarButtonItem?.setTitleTextAttributes([NSAttributedString.Key.font: UIFont(name: "AvenirNextCondensed-DemiBoldItalic", size: 4)!], for: .normal)
}
最佳答案
在 iOS 13 中最简单:
let app = UINavigationBarAppearance()
app.backButtonAppearance.normal.titleTextAttributes = [
// whatever
]
UINavigationBar.appearance().standardAppearance = app
在 iOS 13 之前,API 不会绘制您想要绘制的区分。您只需一次为所有后退按钮设置一个单独的栏按钮项目标题文本属性。
let title = // ...
let back = UIBarButtonItem(title: title, style: .plain, target: nil, action: nil)
back.setTitleTextAttributes([
// whatever
], for: .normal)
self.navigationItem.backBarButtonItem = back
(还请记住,当这个 View Controller 可见时,您的后退栏按钮项目不是后退栏按钮项目,而是当另一个 View Controller 被推上这个的顶部。)
关于swift - 导航栏上后退按钮上的字体(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58270017/