Я пытаюсь изменить шрифт метки. Но каждый шрифт, который я установил в Инспекторе атрибутов, отличается от системного шрифта — ничего не меняйте — ни симулятора, ни раскадровки. Пробовал даже установить шрифт программно с Attributed string - появляется тот же системный шрифт. Спасибо за вашу помощь.
WatchKit WKInterfaceLabel не может изменить шрифт
Ответы (1)
В настоящее время вы не можете использовать включенные шрифты iOS в WatchKit. Единственный доступный — System (Сан-Франциско). Источник: форумы разработчиков Apple
Однако вы можете использовать собственный шрифт, добавив файл шрифта в проект:
Перетащите файлы шрифтов в навигатор проекта.
Включите файл пользовательского шрифта как в приложение WatchKit, так и в пакет расширений WatchKit.
Добавьте ключ Шрифты, предоставляемые приложением (UIAppFonts) в как ваше приложение WatchKit, так и в ваше расширение WatchKit файлы Info.plist
Добавьте этот код в
awakeWithContext
, чтобы убедиться, что вы знаете правильное имя шрифта для последующего вызова в коде:print("Custom font names:") print(UIFont.fontNames(forFamilyName: "Exo")) print(UIFont.fontNames(forFamilyName: "Tabardo"))
Запустите приложение и обратите внимание на имена шрифтов, напечатанные в консоли отладки. Как только вы узнаете правильное имя, вы можете добавить этот код где-нибудь в своем расширении WatchKit:
var fontSize = CGFloat(32) var text = "so cool" var cstmFont = UIFont(name: "Tabardo", size: fontSize)! var attrStr = NSAttributedString(string: text, attributes: [NSFontAttributeName: cstmFont]) firstLabel.setAttributedText(attrStr) fontSize = CGFloat(36) text = "right on!" cstmFont = UIFont(name: "Exo-Regular", size: fontSize)! attrStr = NSAttributedString(string: text, attributes: [NSFontAttributeName: cstmFont]) secondLabel.setAttributedText(attrStr)
Наслаждайтесь пользовательскими шрифтами на часах!
Имейте в виду, что для превью и уведомлений нельзя использовать пользовательские шрифты. Если вы хотите использовать его там, вам придется использовать отрендеренное изображение. Однако, поскольку взгляды и уведомления должны загружаться быстро, вы хотите, чтобы это изображение было готово к работе, когда оно будет вызвано.
Target Membership
при выборе шрифта. Не нужно добавлять папки специально для watchOS
- person SwiftiSwift; 17.03.2021
WKInterfaceLabel -setHidden:
кажется сломанным с момента последнего обновления. Я не меняю шрифт в своем экспериментальном приложении, но вWKInterfaceLabel
может быть больше ошибок. - person miho   schedule 26.01.2015