WatchKit WKInterfaceLabel无法更改字体

Tab*_*kov 7 fonts ios watchkit

我正在尝试更改标签字体.但是我在Attributes Inspector中设置的每种字体都不同于系统字体 - 不要改变任何东西 - 既不是模拟器也不是故事板.我甚至尝试使用Attributed字符串以编程方式设置字体 - 显示相同的System字体.谢谢你的帮助.

Ben*_*row 13

您目前无法在WatchKit中使用随附的iOS字体.唯一可用的是System(旧金山).来源:Apple开发者论坛

但是,您可以通过将字体文件添加到项目中来使用自定义字体:

  1. 将字体文件拖到项目导航器中

    项目导航器中的字体

  2. 在WatchKit应用程序和WatchKit扩展包中包含自定义字体文件.

    添加两个目标

  3. 添加的应用程序(UIAppFonts)提供的字体WatchKit应用和你的WatchKit扩展 的Info.plist文件

    plist中的字体键

  4. 添加此代码以awakeWithContext确保您知道要在代码中稍后调用的正确字体名称:

    print("Custom font names:")
    print(UIFont.fontNames(forFamilyName: "Exo"))
    print(UIFont.fontNames(forFamilyName: "Tabardo")) 
    
    Run Code Online (Sandbox Code Playgroud)
  5. 运行应用程序并记下打印到调试控制台的字体名称.一旦知道了正确的名称,就可以在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)
    
    Run Code Online (Sandbox Code Playgroud)
  6. 享受手表上的自定义字体!

    使用自定义字体观看界面

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