我尝试更改标签字体。但是无论我在属性检查器中设置的字体,都与系统字体不同-没有任何变化-既不会在模拟器上,也不会在故事板上。我甚至尝试使用属性字符串以编程方式设置字体-相同的系统字体出现。感谢您的帮助。
目前在WatchKit中无法使用iOS自带的字体,唯一可用的是系统字体(San Francisco)。 来源:苹果开发者论坛
但您可以通过将字体文件添加到项目来使用自定义字体:
将字体文件拖入项目导航器中。
在您的WatchKit应用程序和WatchKit扩展包中均包含自定义字体文件。
在您的WatchKit应用程序和WatchKit扩展程序的Info.plist文件中均添加应用程序提供的字体(UIAppFonts)键。
添加此代码到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)
享受手表上的自定义字体吧!
请记住,快速浏览和通知无法使用自定义字体。如果您想在那里使用自定义字体,您将需要使用一个渲染后的图片。然而,由于快速浏览和通知应该加载得很快,所以当它被调用时,您需要准备好该图片。
WKInterfaceLabel -setHidden:
似乎有问题。我没有在我的实验应用程序中更改字体,但是可能会有更多WKInterfaceLabel
的问题。 - miho