快速更改标签栏标题字体

Posted

技术标签:

【中文标题】快速更改标签栏标题字体【英文标题】:swift change tab bar title font 【发布时间】:2016-08-12 05:39:50 【问题描述】:

我想知道如何在使用标签栏时更改标签中标题的字体和大小。

我查看了文档,但找不到任何关于标题字体和大小的信息 - source

【问题讨论】:

【参考方案1】:

您可以通过外观代理更改它:

let font: UIFont = ...
UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: font], forState: .Normal)

斯威夫特 4:

UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.font: font], for: .normal)

你应该把它放在你的应用代理中func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool

【讨论】:

@user2636197 查看更新后的答案,如果这对您有用,请接受 我收到错误:“UITabBarItem”类型的值没有成员“titleTextAttributes” @user2636197 我的错,检查新的编辑。您必须指定状态。 .Normal 状态将其设置为正常,其他状态将回退到此值。 谢谢,错误消失了,但我的字体没有改变【参考方案2】:

Swift 3 的更新。

把它放在你的应用代理中func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool

UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: yourFont], for: .normal)

【讨论】:

【参考方案3】:

斯威夫特 5.5

let font: UIFont = UIFont(font: "arial", size: 15)! UITabBarItem.appearance().setTitleTextAttributes([NSAttributedString.Key.font: 字体],用于:.normal)

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案4】:

斯威夫特 4.1

UITabBarItem.appearance().setTitleTextAttributes([kCTFontAttributeName as NSAttributedStringKey: font], for: .normal)

【讨论】:

【参考方案5】:

我发现这个 Swift 5 解决方案很有用:

UITabBarItem.appearance().setTitleTextAttributes([.font: UIFont(name: "FontName", size: 10)!], for: .normal)

【讨论】:

【参考方案6】:

在我的情况下,这个解决方案对我有用(Swift 5.5):

let fontSize: CGFloat = 12
      
if #available(ios 13, *) 
    let appearance = tabBarController.tabBar.standardAppearance
    appearance.stackedLayoutAppearance.normal.titleTextAttributes = [
        NSAttributedString.Key.font: UIFont.systemFont(ofSize: fontSize, weight: .medium)
    ]
    appearance.stackedLayoutAppearance.selected.titleTextAttributes = [
        NSAttributedString.Key.font: UIFont.systemFont(ofSize: fontSize, weight: .medium)
    ]
 else 
     if #available(iOS 11, *) 
         UITabBarItem.appearance().setTitleTextAttributes([
             NSAttributedString.Key.font: UIFont.systemFont(ofSize: fontSize, weight: .medium)
         ], for: .normal)
         UITabBarItem.appearance().setTitleTextAttributes([
             NSAttributedString.Key.font: UIFont.systemFont(ofSize: fontSize, weight: .medium)
         ], for: .selected)
     

【讨论】:

以上是关于快速更改标签栏标题字体的主要内容,如果未能解决你的问题,请参考以下文章

更改占位符字体,在搜索栏下方移动芯片/标签

如何快速更改标签栏的色调?

如何快速更改标签栏未选择图标的颜色?

快速更改点击标签栏后刷新控制器冻结

我只能在标签栏项目中显示文本并更改样式和位置吗

自定义标签栏背景颜色。如何更改标签栏背景的颜色?