UIFont не устанавливается в UILabel-Swift

У меня есть UILabel, и я хочу, чтобы шрифт текста был SF Mono. Итак, я использую эти строки кода:

let tagBoxLabel = UILabel(frame: CGRect(x: 20, y: 0, width: 0, height: 0))
tagBoxLabel.font = UIFont(name: "SF Mono Regular", size: 10.0)

Но текст не установлен. Пробовал "SFMono-Regular", "SFMono-Regular.otf" и т.д. Ничего.

Я также правильно импортировал .OTF в свой проект, так как я могу получить к нему доступ в раскадровке.

Кто-нибудь знает, что я делаю неправильно? Любая помощь будет очень признательна. Большое спасибо заранее!


person Theo Strauss    schedule 25.07.2017    source источник


Ответы (3)


Для меня проблема заключалась в том, что шрифт не был правильно введен в Xcode.

Сначала перетащите файл шрифта в проект Xcode IN FINDER.

Во-вторых, перетащите его в Xcode в навигатор проекта и нажмите «Копировать элементы, если необходимо» и назначьте целевое членство вашей цели. это очень важно

В-третьих, перейдите в свой info.plist и введите туда свой шрифт, используя «Шрифты, предоставленные приложением». Это то, что сделало это для меня.

В-четвертых, убедитесь, что вы используете правильное имя. Это может быть не то имя файла.

Надеюсь, что это поможет любому, кто найдет это!

person Theo Strauss    schedule 25.07.2017

Скорее всего вы используете не правильное имя шрифта. Попробуй это:

let fontFamilyNames = UIFont.familyNames
for familyName in fontFamilyNames {
print("------------------------------")
print("Font Family Name = [\(familyName)]")
let names = UIFont.fontNames(forFamilyName: familyName)
print("Font Names = [\(names)]")
}

Можете ли вы попробовать получить имя шрифта оттуда, реализовать его и запустить снова? Я получил этот код с сайта http://giordanoscalzo.tumblr.com/post/95900320382/print-all-ios-fonts-in-swift

Второй:

    UIFont.familyNames.forEach({ familyName in
        let fontNames = UIFont.fontNames(forFamilyName: familyName)
        print(familyName, fontNames)
    })
person J. Doe    schedule 25.07.2017
comment
Ничего не получается. Означает ли это, что я неправильно импортировал шрифт? - person Theo Strauss; 25.07.2017
comment
У вас есть в вашем представлении DidLoad? У меня работает... Я добавил второй вариант, но он должен работать. Он также должен печатать все шрифты по умолчанию. - person J. Doe; 25.07.2017

Я использовал это руководство для добавления шрифтов в свои приложения, и это самое лучшее. Обязательно проверьте раздел Копировать ресурсы пакета в разделе Этапы сборки.

Перейдите по этой ссылке и получите правильный способ добавление шрифтов в приложение.

Перейдите на панель «Фазы сборки» вашего проекта, выделив файл проекта XCode в обозревателе решений и справа выберите «Фазы сборки». Вы увидите, что одним из разделов, которые вы можете развернуть, является «Копировать ресурсы пакета». Откройте этот список и убедитесь, что ваши шрифты включены в этот список.

person Asfand Shabbir    schedule 17.02.2018
comment
Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавьте контекст вокруг ссылки, чтобы другие пользователи иметь некоторое представление о том, что это такое и почему оно там, а затем процитировать наиболее релевантную часть страницы, на которую вы ссылаетесь, в случае, если целевая страница недоступна. Ответы, которые представляют собой не более чем ссылку, могут быть удалены. - person geisterfurz007; 17.02.2018