2015-01-05 5 views
0

Я пытаюсь установить цвет моей навигационной панели. Я добавил свой шрифт в файл plist и добавил его как ресурс, и я могу выбрать его как шрифт в раскадровке при использовании UILabel. Так что шрифт, кажется, есть.Как установить шрифт и цвета навигационной панели

Я попытался это в приложение делегата:

NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:myLightBrownColor, NSForegroundColorAttributeName,[UIFont fontWithName:@"Pacifico" size:17.0f], NSFontAttributeName, 
            myShadow, NSShadowAttributeName, nil]; 
[navigationBarAppearance setTitleTextAttributes:textTitleOptions]; 

И это в контроллере представления непосредственно:

NSShadow *myShadow = [MRStyleController getMyShadow]; 
NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:[MRStyleController getLightBrownColor], NSForegroundColorAttributeName,[UIFont fontWithName:@"Pacifico" size:17.0f], NSFontAttributeName, 
            myShadow, NSShadowAttributeName, nil]; 
self.navigationController.navigationBar.titleTextAttributes = textTitleOptions; 

Однако ни одно из этого не сделал изменить приложения навигации шрифт заголовка и цвет ,

Любые предложения?

EDIT: , что работает правильно есть:

UINavigationBar *navigationBarAppearance = [UINavigationBar appearance]; 
[navigationBarAppearance setBarTintColor:myBrownColor]; 

NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:myLightBrownColor,  NSForegroundColorAttributeName, 
    myShadow, NSShadowAttributeName, 
    [UIFont fontWithName:@"AmericanTypewriter" size:16.0], NSFontAttributeName, nil]; 
[navigationBarAppearance setTitleTextAttributes:textTitleOptions]; 

Это изменит шрифт "American пишущей машинкой".

Но у меня есть собственный шрифт под названием «Pacifico», который находится в моей папке «Поддерживаемые файлы», как «Pacifico.ttf», и указан в моем info.plist как «Шрифты, предоставляемые приложением», но шрифт не меняется, поэтому каким-то образом нестандартный шрифт неправильно ссылается?

+0

Как вы инициализируете 'navigationBarAppearance' в первом фрагменте кода? И где этот код в контроллере делегирования/просмотра приложения? – shim

+0

'UINavigationBar * navigationBarAppearance = [UINavigationBar появление];' – mrd

+0

Код в конце '- (BOOL) приложения: (UIApplication *) didFinishLaunchingWithOptions применение: (NSDictionary *) launchOptions' – mrd

ответ

1

Для названия навигации бар использовать

self.navigationController.navigationBar.titleTextAttributes= @{ 
    NSForegroundColorAttributeName: [UIColor purpleColor], 
    NSFontAttributeName: [UIFont robotoMediumFontSize : 20.0], 
}; 
[email protected]"MY Title"; 

Для настройки панели навигации цвет фона использовать

self.navigationController.navigationBar.barTintColor=[UIColor myColor];

+0

работает ли это с UIAppearance? Я не люблю кодировать это в каждом VC ... – mrd

+0

Да. Вы можете написать следующее в Appdelegate – Amisha

+0

Чтобы получить доступ к контроллеру навигации в appdelegate, напишите 'UINavigationController * navigationController = (UINavigationController *) self.window.rootViewController;' – Amisha

0

Я нашел решение, шрифт должен быть добавлен в info.plist, как описано выше, но дополнительно в ---> Фазы сборки ---> Копировать ресурсы Bundle.

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