Я преобразовываю некоторые приложения для iOS7 и имею проблемы с текстом в кнопках, размещенных на Панели инструментов. Похоже, размер шрифта намного больше и его невозможно изменить. Таким образом, мои текстовые кнопки, которые так хорошо подходят для iOS6, больше не возможны. Экран недостаточно широк. Можно ли настроить это без повторного использования всего приложения? Почему это глупое изменение? Я действительно хочу адаптировать приложения к iOS7 по нескольким причинам.
Размер шрифта элемента панели инструментов в iOS7
Ответ 1
Вы можете установить атрибуты текста заголовка UIBarItems (включая UIBarButtonItems) с помощью setTitleTextAttributes:forState:
. Например, чтобы установить шрифт текста заголовка для всех UIBarButtonItems, вы можете сделать это:
[[UIBarButtonItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal];
Или, чтобы установить его только для одного,
[myBarButton setTitleTextAttributes:@{NSFontAttributeName : [UIFont boldSystemFontOfSize:9.0]} forState:UIControlStateNormal];
Вы также можете создавать UIBarButtonItems, которые содержат UIButtons, и иметь полный контроль над тем, как отображаются эти UIButtons (шрифт, размер шрифта и т.д.). Это можно сделать в Interface Builder, перетащив UIButton на ваш UIToolbar или в код:
UIButton* button = ...;
UIBarButtonItem* barButton = [[UIBarButtonItem alloc] initWithCustomView:button];
[toolbar setItems:@[barButton, ...] animated:YES];
Обратите внимание, что ваш IBActions/segues нужно будет подключить к UIButton вместо UIBarButtonItem, если вы примете этот подход.
Ответ 2
Swift:
UIToolbar.appearance().barTintColor = TOOLBAR_BACKGROUND_COLOR
if let font = UIFont(name: "AvenirNext-DemiBold", size: 15) {
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: font,NSForegroundColorAttributeName:TOOLBAR_TITLE_COLOR], forState: UIControlState.Normal)
}