ios – WatchKit WKInterfaceLabel无法更改字体

前端之家收集整理的这篇文章主要介绍了ios – WatchKit WKInterfaceLabel无法更改字体前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试更改标签字体.但是我在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)

>享受手表上的自定义字体!

请记住,扫视和通知不能使用自定义字体.如果你想在那里使用一个,你将不得不使用渲染图像.但是,由于扫视和通知应该快速加载,您希望在调用时准备好该图像.

猜你在找的iOS相关文章