it-roy-ru.com

Стандартный шрифт для UINavigationBar Большой заголовок в iOS 11?

Я знаю, как установить цвет и изменить шрифт для большого заголовка в iOS 11, но мне трудно найти шрифт по умолчанию и размер шрифта для большого заголовка. Я хотел бы воспроизвести шрифт в другом месте приложения. Я пробовал следующее, но они не дают результатов для шрифта или размера шрифта. Не уверен, где еще я должен искать это.

NSLog(@"self.navigationController.navigationBar.largeTitleTextAttributes:%@",self.navigationController.navigationBar.largeTitleTextAttributes);

NSDictionary *dict = self.navigationController.navigationBar.largeTitleTextAttributes;
UIFont *font = [dict objectForKey:@"NSFontAttributeName"];
NSLog(@"font is.. %@, %@, %@",font,font.fontName,font.fontDescriptor);
3
SAHM

Правильное решение для получения шрифта большого заголовка заключается в следующем:

Objective-C:

UIFont *font = [UIFont preferredFontForTextStyle: UIFontTextStyleLargeTitle];
NSLog("%@", font);

Swift:

let font = UIFont.preferredFont(forTextStyle: .largeTitle)
print(font)

Это даст правильное значение, даже если пользователь применил различные изменения доступности и размера шрифта в приложении «Настройки».

Выше будет распечатано следующее по умолчанию (на игровой площадке):

<UICTFont: 0x7fa865c05390> семейство шрифтов: ".SFUIDisplay"; Вес шрифта: нормальный; стиль шрифта: нормальный; размер шрифта: 34.00pt

Обратите внимание, что использование .largeTitle в приведенном выше коде должно вызываться только с iOS 11. Если ваше приложение поддерживает iOS 10 или более раннюю версию, вы должны заключить этот код в правильное использование @available.

10
rmaddy

Edit: Я открыл инспектор интерфейса пользователя, и он говорит:

 enter image description here

Нет необходимости кодировать здесь :)

2
palme

Я на самом деле нашел ответ, попробовав разные шрифты и размеры. Теперь, отказ от ответственности, это может измениться с доступностью/динамическими размерами шрифта. Но шрифт и размер я нашел

[UIFont systemFontOfSize:32 weight:UIFontWeightBold]

Я все еще хотел бы найти способ получить это программно и буду ждать, чтобы принять ответ в надежде, что кто-то может знать, как это сделать. А пока, надеюсь, это кому-нибудь пригодится. 

0
SAHM