Есть ли способ найти шрифт и размер кадра заголовка UINavigationBar? - PullRequest
6 голосов
/ 17 мая 2011

Есть ли способ программно вернуть шрифт и размер строки заголовка контроллера навигации (например, self.title.frame.size или self.title.font, хотя я не знаю ни одной из этих работ)?

(ВЕсли вам интересна причина, я хотел бы использовать метод NSString sizeWithFont, чтобы определить, сколько текста может уместиться в заголовке, прежде чем я его урежу. Я мог бы сделать это путем физического измерения шрифта и размера кадра самостоятельно (например,Я думаю, что это Helvetica 15), но я хочу, чтобы фактическое название сообщало свой собственный шрифт и размер, чтобы сделать мое приложение перспективным.)

Ответы [ 2 ]

3 голосов
/ 09 октября 2012

Начиная с iOS 5.0, UINavigationBar имеет свойство titleTextAttributes.Это словарь, содержащий атрибуты, описанные в справочнике NSString UIKit .

Если я распечатываю этот словарь в одном из моих проектов, я получаю следующее:

Font = "<UICFFont: 0x998e690> font-family: \".Helvetica NeueUI\"; font-weight: bold; font-style: normal; font-size: 20px";
TextColor = "UIDeviceWhiteColorSpace 0.2 1";
TextShadowColor = "UIDeviceWhiteColorSpace 0 0";
TextShadowOffset = "UIOffset: {0, 0}";

..., которое показывает системный шрифт по умолчанию, выделенный жирным шрифтом 20pxВы также можете изменить их по своему усмотрению.

1 голос
/ 17 мая 2011

Я разобрался, как получить кадр:

self.navigationItem.titleView.frame.size

, который просто оставляет шрифт.Мое исследование показывает, что это системный шрифт размером 20, но я бы хотел, чтобы это было самоотчетом.

РЕДАКТИРОВАТЬ - ну, это странно.Если я сделаю ...

 self.title = @"test";
 NSLog(@"Width is: %f", self.navigationItem.titleView.frame.size.width);

... я получу случайные отрицательные числа из NSLog.Так что не похоже, что рамка заголовка правильная.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...