16

我正在做一个基于 tabbarController 的应用程序。我有 3 个标签栏项目。

我的问题是:如何更改标签栏项目标题的字体样式?

4

7 回答 7

12
[self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                            [UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont,
                                            [UIColor blackColor], UITextAttributeTextColor,
                                            [UIColor grayColor], UITextAttributeTextShadowColor,
                                            [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)], UITextAttributeTextShadowOffset,
                                            nil]];
于 2012-06-27T08:23:24.303 回答
2

这将在整个应用程序中一劳永逸地更改您的 UITabBarItem 字体

对于 Swift,在 AppDelegate 的 didFinishLaunching 中使用它:

斯威夫特 3:

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.blue,NSFontAttributeName: UIFont(name: "Montserrat", size: 11)!], for: .normal)

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.red,NSFontAttributeName: UIFont(name: "Montserrat", size: 11)!], for: .selected)
于 2017-02-03T16:13:11.360 回答
0

对不起,我不认为有办法做到这一点。如果你很绝望,你需要编写自己的标签栏。

于 2012-06-27T07:33:36.587 回答
0

遗憾的是,目前这在 iOS 上是不可能的,除非您构建自己的自定义标签栏,这对于 iOS5 上的故事板来说并不是很困难。

于 2012-06-27T07:36:48.447 回答
0

不可能,创建自定义标签栏子类化 UITabbar

于 2012-06-27T07:39:19.350 回答
0

如果你看到这个错误:'UITextAttributeTextShadowOffset' is deprecated: first deprecated in iOS 7.0 - Use NSShadowAttributeName with an NSShadow instance as the value.,试试这个。

NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor grayColor];
shadow.shadowOffset = CGSizeMake(0.0, 0.5);

NSDictionary *attribute = [NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"AmericanTypewriter" size:10.0f], NSFontAttributeName,
[UIColor blackColor], NSForegroundColorAttributeName,
 shadow,NSShadowAttributeName,nil];
[[UITabBarItem appearance] setTitleTextAttributes:attribute forState:UIControlStateNormal];
于 2014-11-07T09:30:02.080 回答
-1

试试这个。

[[UITabBarItem appearanceWhenContainedIn:[UITabBar class], nil]
  setTitleTextAttributes:@{NSForegroundColorAttributeName:
    [UIColor colorWithRed:0/255.0f green:130/255.0f blue:202/255.0f alpha:1.0],
    NSFontAttributeName:[UIFont fontWithName:@"Signika-Semibold" size:20.0]
  }
forState:UIControlStateNormal];
于 2015-05-19T11:43:42.760 回答