Ответ 1
Вы имеете в виду это? Имейте в виду, что это работает только для iOS5.0 или новее.
if ([self.tabBarItem respondsToSelector:@selector(setTitleTextAttributes:)]) {
NSLog(@"*** Support method(iOS 5): setTitleTextAttributes:");
[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]];
}
Документация Apple по настройке внешнего вида:
В iOS версии 5.0 и более поздних версиях вы можете настроить внешний вид полос вкладок, установив атрибуты текстовых меток элементов с помощью переключателей вида, объявленных UIBarItem. Вы также можете использовать методы, перечисленные в разделе "Настройка внешнего вида". Вы можете настроить внешний вид всех сегментированных элементов управления с помощью прокси-сервера внешнего вида (например, [Внешний вид UITabBarItem]) или всего лишь одну панель вкладок. Вы также можете предоставить готовые выбранные и невыделенные изображения, используя методы, перечисленные в разделе "Управление готовым выбранным изображением"; эти методы, однако, не участвуют в API прокси-сервера UIAppearance (см. UIAppearance). UIKit теперь обеспечивает автоматическое лечение готовых изображений. Для получения хороших результатов вы должны предоставить готовые выбранные и невыделенные изображения в совпадающих парах с помощью setFinishedSelectedImage: withFinishedUnselectedImage:.
Изменить: Вот еще один пример использования системы UIAppearance и синтаксиса литералов NSDictionary:
[[UITabBarItem appearance] setTitleTextAttributes:@{
UITextAttributeFont : [UIFont fontWithName:@"AmericanTypewriter" size:20.0f],
UITextAttributeTextColor : [UIColor blackColor],
UITextAttributeTextShadowColor : [UIColor grayColor],
UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)]}];
Изменить (by @JeremyWiebe): Начиная с iOS 6, ключи словаря были изменены так же, как в OS X:
NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor grayColor];
shadow.shadowOffset = CGSizeMake(0, 1.0);
[[UITabBarItem appearance] setTitleTextAttributes:@{
NSFontAttributeName : [UIFont fontWithName:@"AmericanTypewriter" size:20.0f],
NSForegroundColorAttributeName : [UIColor blackColor],
NSShadowAttributeName : shadow }];