Шрифт SF Pro Text Medium не встречается в быстром коде

Я использую xCode 9.3.1 и Swift 4.1.

Я пытаюсь программно использовать шрифт SF Pro Text Medium в своем коде приложения. Но этого шрифта нет в исходном коде в быстром файле, и приложение вылетает.

Вот код: NSAttributedStringKey.font: UIFont (name: ".SFProText-Medium", размер: 24.0)!

Во время выполнения выдается следующая ошибка: Неустранимая ошибка: неожиданно обнаружено значение nil при развертывании необязательного значения.

Любой другой стандартный шрифт работает.

Этот шрифт доступен в раскадровке, и я успешно его использовал.

Почему не работает программно? Должен ли я добавить его в xCode (plist и т. Д.), Чтобы он работал?


person Matt    schedule 14.05.2018    source источник


Ответы (2)


Выполните следующие действия и посмотрите, сработает ли это для вас:


1) Добавьте файлы шрифтов в свой проект

2) В вашем info.plist нажмите кнопку с плюсом в самом верху рядом с тем местом, где написано Information Property List. Введите Fonts provided by application (он должен заполниться автоматически). Добавьте файлы шрифтов следующим образом:

это

3) Нажмите на свой проект в левом меню, перейдите к Build Phases и добавьте файлы шрифтов туда, где указано Copy Bundle Sources.


Если вы не уверены, как называется ваш шрифт, распечатайте все шрифты, пока не найдете название вашего шрифта. Запустите это в viewDidLoad

UIFont.familyNames.forEach({ familyName in
    let fontNames = UIFont.fontNames(forFamilyName: familyName)
    print(familyName, fontNames)
})
person Nader Besada    schedule 15.05.2018
comment
Tx Nader, очень подробная и пошаговая инструкция. Это сработало как шарм. Единственная загадка, которая меня все еще беспокоит, - это то, почему мы должны включать системные шрифты, если мы должны использовать их программно, когда он уже доступен xCode и может использоваться в IB. Я подумал, что если он уже включен в xCode IB, он также должен быть доступен для программного использования. - person Matt; 15.05.2018
comment
@Matt Tbh Я не уверен, этот шрифт должен быть добавлен в ваши plist и источники пакета для работы, поэтому я предполагаю, что этот конкретный шрифт уже есть на вашем Mac, поэтому он появился в вашем IB. Действительно ли шрифт появляется, когда вы запускаете приложение со шрифтом IB? - person Nader Besada; 15.05.2018

Должен ли я добавить его в xCode (plist и т. Д.), Чтобы он работал?

Определенно. Следуйте инструкциям Надера и убедитесь, что файл шрифта имеет ваш проект как целевое членство, например:

введите описание изображения здесь

person Glenn Posadas    schedule 15.05.2018