Вопрос простой и простой, ответ, к сожалению, нет.
Как вы можете изменить шрифт текста в UINavigationBar
?
Вопрос простой и простой, ответ, к сожалению, нет.
Как вы можете изменить шрифт текста в UINavigationBar
?
От iOS 7 и более поздних версий:
NSShadow* shadow = [NSShadow new];
shadow.shadowOffset = CGSizeMake(0.0f, 1.0f);
shadow.shadowColor = [UIColor redColor];
[[UINavigationBar appearance] setTitleTextAttributes: @{
NSForegroundColorAttributeName: [UIColor greenColor],
NSFontAttributeName: [UIFont fontWithName:@"Helvetica" size:20.0f],
NSShadowAttributeName: shadow
}];
Из iOS 5 и более поздних версий:
[[UINavigationBar appearance] setTitleTextAttributes: @{
UITextAttributeTextColor: [UIColor greenColor],
UITextAttributeTextShadowColor: [UIColor redColor],
UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
UITextAttributeFont: [UIFont fontWithName:@"Helvetica" size:20.0f]
}];
Ранее, чем iOS 5:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:20.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentCenter;
label.textColor =[UIColor whiteColor];
label.text=self.title;
self.navigationItem.titleView = label;
[label release];
Если вы хотите изменить шрифт в самом интерфейсе (без какого-либо кода), это способ сделать это в Xcode6:
1.) Найдите представление панели навигации под сценой навигационного контроллера
2.) Измените атрибуты шрифта заголовка, цвета и тени в Инспекторе атрибутов.
Вышеприведенный ответ работает. Я бы добавил следующую строку до последней строки. Если я этого не сделаю, кажется, что метка выровнена по центру неправильно, если на левой стороне есть кнопка "Назад", но нет правой кнопки.
...
[self.navigationItem.titleView sizeToFit];
[label release]; // not needed if you are using ARC
Обновлен для iOS 7:
[[UINavigationBar appearance] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
shadow, NSShadowAttributeName,
[UIFont fontWithName:@"HelveticaNeue-CondensedBlack" size:21.0], NSFontAttributeName, nil]];
любезно предоставлено:
http://www.appcoda.com/customize-navigation-status-bar-ios-7/
Не знаю, почему все ответы включали тень. Добавление строк, которые манипулируют тенью, ничего не делает в отношении изменения шрифта текста. Эти 2 строки кода будут работать для iOS 8.4 и Swift
let attributesDictionary = [NSFontAttributeName: UIFont(name: "Helvetica Neue", size: 14)!]
navigationController!.navigationBar.titleTextAttributes = attributesDictionary
В titleTextAttributes
хранится словарь, который будет определять шрифт, цвет, размер и другие атрибуты заголовка панели навигации.
Как и в iOS 5, вы можете использовать прокси-сервер внешнего вида.
Ответ в дубликате этого вопроса: fooobar.com/questions/87318/...
NSShadow *shadow = [NSShadow new];
[shadow setShadowColor: [UIColor clearColor]];
[shadow setShadowOffset: CGSizeMake(0.0f, 1.0f)];
[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIFont fontWithName:@"TimeBurner" size:27.0f], NSFontAttributeName,
[UIColor whiteColor], NSForegroundColorAttributeName,
shadow, NSShadowAttributeName,nil]];