我正在尝试更改标签字体.但是我在Attributes Inspector中设置的每种字体都不同于系统字体 – 不会改变任何东西 – 既不是模拟器也不是故事板.我甚至尝试使用Attributed字符串以编程方式设置字体 – 显示相同的System字体.谢谢你的帮助.
解决方法
您目前无法在WatchKit中使用随附的iOS字体.唯一可用的是System(旧金山).
Source: Apple Developer Forums
>将字体文件拖到项目导航器中
>在WatchKit应用程序和WatchKit中包含自定义字体文件
扩展包.
>将应用程序提供的字体(UIAppFonts)键添加到WatchKit应用程序和WatchKit Extension 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)
>享受手表上的自定义字体!
请记住,扫视和通知不能使用自定义字体.如果你想在那里使用一个,你将不得不使用渲染图像.但是,由于扫视和通知应该快速加载,您希望在调用时准备好该图像.