2013-06-17 2 views
0

Я просто подумал, что можно глобально изменить UINavigationBar's название textAlignment, как вы можете сделать со своим шрифтом:SettingUINavigationbar textAlignment с UIappearance возможно?

NSMutableDictionary *titleBarAttributes  = [NSMutableDictionary dictionaryWithDictionary: [[UINavigationBar appearance] titleTextAttributes]]; 
[titleBarAttributes setValue:[UIFont fontWithName:myFontName] forKey:NSFontAttributeName]; 
[[UINavigationBar appearance] setTitleTextAttributes:titleBarAttributes]; 

Существует ли что-то вроде [titleBarAttributes setValue:NSTextAlignmentLeft forKey:NSTextAlignment] для UIAppereance?

ответ

1

Я боюсь, что ответ отрицательный. Вы можете иметь только следующие ключи для атрибутов текста из NSString UIKit Additions Reference:

NSString *const UITextAttributeFont; 
NSString *const UITextAttributeTextColor; 
NSString *const UITextAttributeTextShadowColor; 
NSString *const UITextAttributeTextShadowOffset; 

Но вы все еще можете установить titleView свойство UINavigationItem с UILabel и вы можете установить выравнивание текста там.

Вы можете создать базовый подкласс контроллера вида, установить свойство titleView navigationView и создать последующие контроллеры представлений путем подкласса этого контроллера базового представления.

+0

Похоже, вы правы, и 'UIAppearance' не может справиться с этим поведением. К сожалению, я уже реализовал суперкласс с 'UILabel' в качестве подзаголовка, я просто задавался вопросом, есть ли другие возможности. – pmk

Смежные вопросы