Как изменить размер шрифта имени элемента контроллера панели вкладок?

Я делаю приложение на основе tabbarController. У меня есть 3 вкладки.

Мой вопрос: как изменить стиль шрифта для заголовка в элементе табуляции?

Ответы

Ответ 1

[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]];

Ответ 2

Это изменяет шрифты U UITabBarItem раз и навсегда во всем приложении

Для Swift используйте это в AppDelegate doneFinishLaunching:

Swift 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)

Ответ 3

Извините, я не думаю, что есть способ сделать это. Если вы в отчаянии, вам нужно написать собственную панель вкладок.

Ответ 4

К сожалению, это невозможно в настоящее время на iOS, если вы не создадите собственную панель вкладок, что не очень сложно для раскадровки на iOS5.

Ответ 5

Невозможно создать подклассу панели вкладок custome UITabbar

Ответ 6

Если вы видите эту ошибку: '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];

Ответ 7

Попробуйте это.

[[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];