2012-06-27 5 views
14

Я делаю приложение на основе tabbarController. У меня есть 3 элемента табуляции.Как изменить размер шрифта имени элемента контроллера панели вкладок?

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

+0

является то во время выполнения? – janusbalatbat

+1

Поверьте мне, никто из пользователей не читает текст, я предпочитаю скорее тратить время на действительно хороший описательный значок – doNotCheckMyBlog

+0

да. я хочу это с помощью программно –

ответ

11
[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]]; 
+1

это не придет .. он показывает предупреждение и заканчивается оттуда –

+1

Почему это поддерживается 7 раз, когда нет такого метода для UITabBarItem? –

+3

Для всех, у кого есть проблемы с этим: метод, указанный выше, неверен. Вам нужно добавить параметр 'forState:' после 'setTitleTextAttributes:'. Затем он будет компилироваться без предупреждений и работать, как ожидалось. – element119

0

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

+1

Почему это поддерживается? Для этого более раннего вопроса предлагаются решения: http://stackoverflow.com/q/2576592/199364. Или вы говорите, что вопрос здесь другой? – ToolmakerSteve

+0

@ToolmakerSteve Абсолютно правильно. Проверьте мой ответ. –

0

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

0

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

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]; 
-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]; 
+0

Уточните, что именно он делает? – MeanGreen

1

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

Для Swift использовать это в didFinishLaunching AppDelegate в:

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) 
Смежные вопросы