В других ответах нет ничего плохого. Я просто делюсь версией раскадровки для установки шрифта.
1. Выберите панель навигации в контроллере навигации.
2. Измените шрифт заголовка в инспекторе атрибутов.
(Вам, вероятно, потребуется переключить оттенок панели для панели навигации, прежде чем Xcode подберет новый шрифт)
Примечания (предостережения)
Проверено, что это работает на Xcode 7.1.1+. ( См. Образцы ниже )
- Вам нужно переключить оттенок панели навигации, прежде чем шрифт вступит в силу (похоже на ошибку в Xcode; вы можете переключить его обратно на значение по умолчанию, и шрифт останется)
- Если вы выбираете системный шрифт ~ Убедитесь, что размер не равен 0,0 (иначе новый шрифт будет проигнорирован)
- Похоже, это работает без проблем, когда только один NavBar находится в иерархии представления. Похоже, что вторичные панели навигации в том же стеке игнорируются. (Обратите внимание, что если вы показываете панель навигации главного контроллера навигации, все остальные пользовательские настройки панели навигации игнорируются).
Попался (два)
Некоторые из них повторяются, а это значит, что их, скорее всего, стоит отметить.
- Иногда XML раскадровки повреждается. Для этого необходимо просмотреть структуру в режиме «Раскадровка как исходный код» (щелкните правой кнопкой мыши файл раскадровки> «Открыть как ...»).
- В некоторых случаях тег navigationItem, связанный с определенным пользователем атрибутом среды выполнения, был установлен как дочерний элемент xml тега представления вместо тега контроллера представления. В таком случае удалите его между тегами для правильной работы.
- Переключите оттенок NavBar, чтобы убедиться, что используется настраиваемый шрифт.
- Проверьте параметр размера шрифта, если не используется стиль динамического шрифта
- Иерархия просмотра переопределит настройки. Похоже, что возможен один шрифт на стопку.
Результат
Образцы
Обработка пользовательских шрифтов
Примечание ~ Хороший контрольный список можно найти на веб-сайте Code With Chris, и вы можете увидеть образец загружаемого проекта.
Если у вас есть собственный шрифт и вы хотите использовать его в своей раскадровке, то на следующий вопрос SO есть достойный набор ответов . Один ответ определяет эти шаги.
- Получите собственный файл шрифта (.ttf, .ttc)
- Импортируйте файлы шрифтов в свой проект Xcode
- В app-info.plist добавьте ключ с именем Fonts, предоставляемый приложением. Это тип массива, добавьте все имена файлов шрифтов в массив, примечание: включая расширение файла.
- В раскадровке на панели навигации перейдите к инспектору атрибутов, нажмите правую кнопку значка в области выбора шрифта. Во всплывающей панели выберите «Шрифт на выбор» и выберите семейство встроенного шрифта.
Обходное решение для пользовательского шрифта
Таким образом, Xcode, естественно, выглядит так, как будто он может обрабатывать пользовательские шрифты в UINavigationItem, но эта функция просто не обновляется должным образом (выбранный шрифт игнорируется).
Чтобы обойти это:
Один из способов - исправить использование раскадровки и добавить строку кода: сначала добавьте UIView (UIButton, UILabel или какой-либо другой подкласс UIView) в контроллер представления (не элемент навигации ... Xcode в настоящее время не позволяет делать который). После добавления элемента управления вы можете изменить шрифт в раскадровке и добавить ссылку в качестве выхода в контроллер представления. Просто назначьте это представление для UINavigationItem.titleView. При необходимости вы также можете указать текстовое имя в коде. Сообщил об ошибке (23600285).
@IBOutlet var customFontTitleView: UIButton!
//Sometime later...
self.navigationItem.titleView = customFontTitleView