我正在尝试更改标签字体。但是我在Attributes Inspector中设置的每种字体都不同于系统字体 - 不要改变任何东西 - 既不是模拟器也不是故事板。我甚至尝试使用Attributed字符串以编程方式设置字体 - 显示相同的System字体。谢谢你的帮助。
答案 0 :(得分:13)
目前,您无法在WatchKit中使用随附的iOS字体。唯一可用的是System(旧金山)。 Source: Apple Developer Forums
但是,您可以通过将字体文件添加到项目中来使用自定义字体:
将字体文件拖到项目导航器
中在WatchKit应用和WatchKit中包含自定义字体文件 扩展包。
将应用程序提供的字体(UIAppFonts)键添加到两者 WatchKit应用和 WatchKit扩展程序< / strong> Info.plist 文件
将此代码添加到awakeWithContext
,以确保您知道要在代码中稍后调用的正确字体名称:
print("Custom font names:")
print(UIFont.fontNames(forFamilyName: "Exo"))
print(UIFont.fontNames(forFamilyName: "Tabardo"))
运行应用程序并记下打印到调试控制台的字体名称。一旦知道正确的名称,就可以在WatchKit Extension中的某处添加此代码:
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)
享受手表上的自定义字体!
请注意,扫视和通知无法使用自定义字体。如果你想在那里使用一个,你将不得不使用渲染图像。但是,由于扫视和通知应该快速加载,因此您希望在调用该图像时准备就绪。