2015-03-01 5 views
5

Я пытаюсь изменить font Недвижимость для UINavigationItem.Как изменить шрифт UINavigationItem?

Я пробовал использовать titleTextAttributes, но каким-то образом я могу изменить шрифт названия.

Как изменить шрифт или UINavigationItem? Например, «Больше» текст для Назад UIButton показано ниже:

enter image description here

Я попытался с помощью:

self.navigationController?.navigationBar.titleTextAttributes = [ 
      NSForegroundColorAttributeName: UIColor.blackColor(), 
      NSFontAttributeName: UIFont(name: "Papyrus", size: 18)! 
     ] 

но изменяется только то, что показано на картинке, а не «Подробнее» Шрифт кнопки.

ответ

10

Причина ваш метод не работает, потому что вы просто использовали titleTextAttributes = ..., когда вы должны использовать setTitleTextAttributes:forState: Я использую эту функцию, чтобы настроить Nav Bar глобально для всего моего проекта:

func customizeNavBar(#color: UIColor, titleFont: UIFont, buttonFont: UIFont) { 

    UINavigationBar.appearance().tintColor = color 
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: color, NSFontAttributeName: titleFont] 
    UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal) 
} 

Для одного экземпляра, вызовите одни и те же функции:

someBarButton.tintColor.setTitleTextAttributes([NSForegroundColorAttributeName: color, NSFontAttributeName: buttonFont], forState: UIControlState.Normal) 
+0

Это изменение шрифта для всех кнопок, мне нужно изменить его только для одного в определенном классе/Контроллер навигации – Fengson

+0

Затем вместо 'UINavigationBar.appearance()' вы вызываете те же функции на экземпляре UINavigationBar (предположительно 'navigationController.navigationBar') answer updated – Ian

+0

Я уже пробовал это, но получаю сообщение об ошибке «UINavigationItem не имеет матрицы с именем setTitleTextAttributes. Также нет navigationBar ... Я могу использовать только тот, который я представил в своем первом сообщении ..: <Изменить: проверить мой первоначальный пост - я добавил код, который я использую. – Fengson

0

Свифта 4

UIBarButtonItem.appearance().setTitleTextAttributes([NSAttributedStringKey.font: UIFont(name: "Helvetica-Bold", size: 15)!], for: .normal) 
Смежные вопросы