如何更改 UINavigationItem 字体?
How to change UINavigationItem font?
我正在尝试将 font
属性 更改为 UINavigationItem
。
我试过使用 titleTextAttributes
但不知何故我只能更改标题字体。
如何更改字体或 UINavigationItem?例如,背面 UIButton
的 "More" 文本如下所示:
我试过使用:
self.navigationController?.navigationBar.titleTextAttributes = [
NSForegroundColorAttributeName: UIColor.blackColor(),
NSFontAttributeName: UIFont(name: "Papyrus", size: 18)!
]
但它只会改变图片上显示的内容,不会改变 "More" 按钮的字体。
您的方法不起作用的原因是因为当您必须使用 setTitleTextAttributes:forState:
时您只是使用 titleTextAttributes = ...
我使用此功能为我的整个项目全局自定义导航栏:
func customizeNavBar(_ color: UIColor, titleFont: UIFont, buttonFont: UIFont) {
UINavigationBar.appearance().tintColor = color
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: color, NSFontAttributeName: titleFont]
UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal)
}
对于单个实例,调用相同的函数:
someBarButton.tintColor.setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal)
Swift 4
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 15)!], for: .normal)
对于 iOS 13 和 Swift 5。
用于设置条形按钮项目文本颜色和字体:
UIBarButtonItem.appearance().setTitleTextAttributes([
.foregroundColor: UIColor.white,
.font: UIFont(name: GetFontNameBold(), size: 40)! ],
for: UIControl.State.normal)
要设置标题颜色和字体,只需在 viewDidLoad() 中添加以下行:
UINavigationBar.appearance().titleTextAttributes = [
.foregroundColor: UIColor.white,
.font: UIFont(name: "Arial", size: 24)! ]
如果您有插座,请执行此操作:
titleItem.titleLabel.font = UIFont(name: NAME, size: SIZE)
我正在尝试将 font
属性 更改为 UINavigationItem
。
我试过使用 titleTextAttributes
但不知何故我只能更改标题字体。
如何更改字体或 UINavigationItem?例如,背面 UIButton
的 "More" 文本如下所示:
我试过使用:
self.navigationController?.navigationBar.titleTextAttributes = [
NSForegroundColorAttributeName: UIColor.blackColor(),
NSFontAttributeName: UIFont(name: "Papyrus", size: 18)!
]
但它只会改变图片上显示的内容,不会改变 "More" 按钮的字体。
您的方法不起作用的原因是因为当您必须使用 setTitleTextAttributes:forState:
时您只是使用 titleTextAttributes = ...
我使用此功能为我的整个项目全局自定义导航栏:
func customizeNavBar(_ color: UIColor, titleFont: UIFont, buttonFont: UIFont) {
UINavigationBar.appearance().tintColor = color
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: color, NSFontAttributeName: titleFont]
UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal)
}
对于单个实例,调用相同的函数:
someBarButton.tintColor.setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal)
Swift 4
UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 15)!], for: .normal)
对于 iOS 13 和 Swift 5。
用于设置条形按钮项目文本颜色和字体:
UIBarButtonItem.appearance().setTitleTextAttributes([
.foregroundColor: UIColor.white,
.font: UIFont(name: GetFontNameBold(), size: 40)! ],
for: UIControl.State.normal)
要设置标题颜色和字体,只需在 viewDidLoad() 中添加以下行:
UINavigationBar.appearance().titleTextAttributes = [
.foregroundColor: UIColor.white,
.font: UIFont(name: "Arial", size: 24)! ]
如果您有插座,请执行此操作:
titleItem.titleLabel.font = UIFont(name: NAME, size: SIZE)