如果我在 viewDidLoad() 中添加了代码,那么在选择标签栏时我永远无法更改字体。
这是一篇很棒的文章,它解释了如何更详细地做到这一点:HolySwift 文章
简而言之,您需要在标签栏控制器中添加以下代码:
override var selectedIndex: Int {
didSet {
guard let selectedViewController = viewControllers?[selectedIndex] else {
return
}
selectedViewController.tabBarItem.setTitleTextAttributes([.font: UIFont.boldSystemFont(ofSize: 13)], for: .normal)
}
}
还有这个:
override var selectedViewController: UIViewController? {
didSet {
guard let viewControllers = viewControllers else {
return
}
for viewController in viewControllers {
if viewController == selectedViewController {
viewController.tabBarItem.setTitleTextAttributes([.font: UIFont.boldSystemFont(ofSize: 13)], for: .normal)
} else {
viewController.tabBarItem.setTitleTextAttributes([.font: UIFont.systemFont(ofSize: 12)], for: .normal)
}
}
}
}
PS:这也适用于自定义字体。