Подтвердить что ты не робот

Изменение шрифта UINavigationBar в Swift

У меня есть UINavigationBar с заголовком в середине. Я добавил пользовательский шрифт ( "Comic_Andy.ttf" ) в мое приложение (я проверил info.plist, чтобы убедиться, что он указан, и я проверил Copy Bundle Resources, чтобы убедиться, что он был добавлен), и я бы хотел заголовок UINavigationBar, который будет отображаться в этом шрифте. Из того, что я могу собрать, кажется, что я должен использовать это в своем ViewController:

myNavigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy", size: 22)]

Я поместил этот метод в viewDidLoad функцию ViewController.
Я также пробовал это в didFinishLaunchingWithOptions функции AppDelegate:

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy", size: 22)]


Я программирую в Swift, в XCode 6 Beta 6. Многие ресурсы, связанные с этой задачей, упоминали использование метода с именем setTitleTextAttributes, которого нигде не видно. Я не могу понять, что это за жизнь - я, наверное, уже провел около 3 часов - я проверил каждый ответ StackOverflow на каждом сайте, поэтому, пожалуйста, не отмечайте это как дубликат.

Большое спасибо заранее!

4b9b3361

Ответ 1

Ну, это заняло целый день, но я понял. Моя первая проблема заключалась в том, что у меня даже не было NavigationController, поэтому, как только я понял, что все отсортировано это, наконец, исправлено. Оказывается, вы вызываете шрифт следующим образом: Comic Andy вместо Comic_Andy. ДАЖЕ, ЧТО МЕНЕДЖЕР относится ко всему пакету как Comic_Andy, а файл называется Comic_Andy, вы все еще используете Comic Andy.

Ответ 2

Вместо использования myNavigationBar попробуйте navigationController.navigationBar в функции ViewController viewDidLoad. Это сработало для меня.

navigationController.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy", size: 22)]

Если это не сработает, попробуйте использовать суффикс .ttf.

navigationController.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Comic_Andy.ttf", size: 22)]

Удачи!

Ответ 3

Также можно сделать для всех навигационных панелей с помощью UINavigationBar.appearance().

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: UIFont(name: Font.mediumFontName, size: 20)!]