2012-06-17 6 views
28

Привет У меня есть этот код, и он не работает, что я делаю неправильно?Изменение шрифта в UITabBarItem

- (void)viewDidLoad 
{  
    [self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont, nil] forState:UIControlStateDisabled]; 
} 

Кстати, это не единственная вещь в моей viewDidLoad, но я просто хотел показать вам, ребята, то где я положил его.

+0

Можете ли вы поделиться какой версия прошивки вы ориентируетесь? Эта функция является новой для iOS 5. –

+0

@ctrahey Я ориентируюсь на iOS 5. –

ответ

61

По: How to change the Color of text in UITabBarItem in iOS 5

Похоже, что решение может посылать сообщение на внешний вид прокси, вместо одного пункта:

(устаревшее в прошивкой 7.0+)

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont, nil] forState:UIControlStateNormal]; 

Для iOS 7.0+ использование:

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"AmericanTypewriter" size:20.0f], NSFontAttributeName, nil] forState:UIControlStateNormal]; 
+0

Это ничего не изменило ... –

+4

change forstate: UIControlStateNormal –

+3

Не указано здесь. Вы можете поместить этот код в функцию didFinishLaunchingWithOptions в делегате приложения, чтобы установить его для приложения –

7

Swift путь для lazies:

UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont.systemFontOfSize(10)], forState: .normal) 
UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont.systemFontOfSize(10)], forState: .selected) 
+2

Это не меняет шрифт для меня для '.selected'. – AbbasAngouti

+1

@AbbasAngouti для изменения шрифта выбрано состояние, вы должны использовать что-то вроде этого: https://stackoverflow.com/a/47529912/1980246 –

2

Swift 3

UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "OpenSans", size: 10)!], for: .normal) 
Смежные вопросы