Для тех, кто заинтересован в использовании UIAppearance
для оформления шрифтов UIBarButtonItem
во всем приложении, это можно сделать с помощью следующей строки кода:
Цель C:
NSDictionary *barButtonAppearanceDict = @{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Light" size:12.0], NSForegroundColorAttributeName: [UIColor whiteColor]};
[[UIBarButtonItem appearance] setTitleTextAttributes:barButtonAppearanceDict forState:UIControlStateNormal];
Swift 2.3:
UIBarButtonItem.appearance().setTitleTextAttributes(
[
NSFontAttributeName : UIFont(name: "HelveticaNeue-Light", size: 12)!,
NSForegroundColorAttributeName : UIColor.white
],
for: .normal)
Swift 3
UIBarButtonItem.appearance().setTitleTextAttributes(
[
NSFontAttributeName : UIFont(name: "HelveticaNeue-Light", size: 12)!,
NSForegroundColorAttributeName : UIColor.white,
], for: .normal)
Swift 4
UIBarButtonItem.appearance().setTitleTextAttributes(
[
NSAttributedStringKey.font : UIFont(name: "HelveticaNeue-Light", size: 12)!,
NSAttributedStringKey.foregroundColor : UIColor.white,
], for: .normal)
Или для одного UIBarButtonItem (не для всего приложения), если у вас есть специальный шрифт для одной кнопки, в частности:
Swift 3
let barButtonItem = UIBarButton()
barButtonItem.setTitleTextAttributes([
NSFontAttributeName : UIFont(name: "FontAwesome", size: 26)!,
NSForegroundColorAttributeName : UIColor.white,
], for: .normal)
barButtonItem.title = "\u{f02a}"
Swift 4
let barButtonItem = UIBarButton()
barButtonItem.setTitleTextAttributes([
NSAttributedStringKey.font : UIFont(name: "FontAwesome", size: 26)!,
NSAttributedStringKey.foregroundColor : UIColor.white,
], for: .normal)
barButtonItem.title = "\u{f02a}"
Конечно, вы можете изменить шрифт и размер на любой, какой захотите.Я предпочитаю помещать этот код в файл AppDelegate.m
в разделе didFinishLaunchingWithOptions
.
Доступные атрибуты (просто добавьте их в NSDictionary
):
NSFontAttributeName
: Изменить шрифт с помощью UIFont
NSForegroundColorAttributeName
: изменить цвет с помощью UIColor
NSShadow
: добавить тень (см. NSShadow
справочник по классам)
(Обновлено для iOS7 +)