2013-11-24 2 views
0

Так что я был в состоянии изменить размер шрифта и цвет основного текста в UINavigationBar так:Установить размер шрифта текста из leftbarbuttonitem в iOS7

[[UINavigationBar appearance] setTitleTextAttributes:@{ 
                 UITextAttributeTextColor: [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0], 
                 UITextAttributeTextShadowColor: [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8], 
                 UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
                 UITextAttributeFont: [UIFont fontWithName:@"Arial-Bold" size:0.0], 
                 }]; 
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 

Однако размер шрифта leftbarbuttonitem является все еще слишком большой. Как я могу ссылаться на leftbarbuttonitem, чтобы я мог установить для него стиль текста?

Я пробовал такие вещи, как

[UINavigationBar leftBarButtonItem] 
[[UINavigationBar navigationItems] leftBarButtonItem] 
[[UINavigationBar appearance] leftBarButtonItem] 
// and many others 
etc... 

Но Xcode продолжает жаловаться, что он не существует, и я не мог ссылаться на него.

Может кто-нибудь сказать мне, как установить размер текста для leftBarButtonItem на основе моего кода выше?

Благодаря

ответ

0

Ниже будет работать:

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:(NSDictionary *) forState:(UIControlState)];

Держите к сведению, что UINavigationBar использует UIBarButtonItem, так что вам нужно стилизовать этот объект, когда он содержится в определенной точки зрения (ссылка на это класс). Это применимо в нескольких других местах. Другой вариант использования может быть такой, где А, В, и С 3 различных UINavigationControllers

[[UIBarButtonItem appearanceWhenContainedIn:[A class], [B class], nil] setTitleTextAttributes:(NSDictionary *) forState:(UIControlState)];

[[UIBarButtonItem appearanceWhenContainedIn:[C class], nil] setTitleTextAttributes:(NSDictionary *) forState:(UIControlState)];

В приведенном выше примере, UIBarButtonItems в UINavigationControllers A & Б приема подобный стиль, тогда как UIBarButtonItems UINavigationController C будут иметь свои владеют отличным стилем.

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