美文网首页
设置系统tabbar字体颜色

设置系统tabbar字体颜色

作者: 加菲貓的日常 | 来源:发表于2020-07-29 11:37 被阅读0次

方式一:

// 设置item的选中状态的颜色,但是默认的颜色未设置,不符合要求

[[UITabBar appearance] setTintColor:[UIColor colorWithHexString:Tabbar_select_textColor]];

只修改了选中状态下字体,默认字体未能修改.png

方式二:

// 别人推荐的方式:在添加controller的时候设置默认和选中的字体,其实在viewDidLoad中设置一次tabbar即可

  [controller.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:KColorWithHex(PrimaryBgColor)} forState:UIControlStateSelected];
  [controller.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:KColorWithHex(KColor_TextFirst)} forState:UIControlStateNormal];

这种方式在iOS13以下版本还是可以的,但是iOS13的效果如下,偶尔会出现字体变成系统蓝色的bug:


偶尔出现蓝色字体.png iOS13下默认字体仍未修改.png

方式三:

// 方式三:适配iOS13
if (@available(iOS 13.0, *)) {
        // iOS13 及以上
        self.tabBar.tintColor = KColorWithHex(Tabbar_select_textColor);
        self.tabBar.unselectedItemTintColor = KColorWithHex(Tabbar_normal_textColor);
 }  
else {
       // iOS13 以下
       UITabBarItem *item = [UITabBarItem appearance];
       [item setTitleTextAttributes:@{ NSForegroundColorAttributeName:KColorWithHex(Tabbar_normal_textColor)} forState:UIControlStateNormal];
       [item setTitleTextAttributes:@{ NSForegroundColorAttributeName:KColorWithHex(Tabbar_select_textColor)} forState:UIControlStateSelected];
 }

完美解决iOS13及以上版本字体的设置,方式一和方式三的代码都可以写到viewDidLoad方法中,设置一次即可。

参考:
https://www.jianshu.com/p/2b55512c9a1f

相关文章

网友评论

      本文标题:设置系统tabbar字体颜色

      本文链接:https://www.haomeiwen.com/subject/tpkhrktx.html