【问题标题】:WatchKit WKInterfaceLabel can't change fontWatchKit WKInterfaceLabel 无法更改字体
【发布时间】:2015-01-26 09:00:33
【问题描述】:

我正在尝试更改标签字体。但是我在属性检查器中设置的每种字体都与系统字体不同——不要改变任何东西——无论是模拟器还是故事板。我什至尝试使用属性字符串以编程方式设置字体 - 出现相同的系统字体。谢谢你的帮助。

【问题讨论】:

  • 您使用的是最新的测试版(Xcode 6.2 beta 4)吗? WKInterfaceLabel -setHidden: 自上次更新以来似乎已损坏。我没有在我的实验性应用程序中更改字体,但WKInterfaceLabel 中可能有更多内容损坏。
  • 是的,我正在使用最后一个 Xcode 6.2 beta 4。我希望有解决方案,或者我能做的就是等到下一个 beta 5。
  • 点击【这里看答案】【1】【1】:stackoverflow.com/questions/28360525/…

标签: ios fonts watchkit


【解决方案1】:

此时您无法使用 WatchKit 中包含的 iOS 字体。唯一可用的是 System(旧金山)。 Source: Apple Developer Forums

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

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

  2. 在您的 WatchKit 应用和 WatchKit 中包含自定义字体文件 扩展包。

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

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

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

请注意,扫视和通知不能使用自定义字体。如果您想在那里使用一个,则必须使用渲染图像。但是,由于扫视和通知应该会快速加载,因此您希望在调用该图像时准备好该图像。

【讨论】:

  • @Underdog 用图片编辑了答案。告诉我进展如何!
  • 只需在单击字体时勾选Target Membership 框。无需专门将文件夹添加到 watchOS
猜你喜欢
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
  • 2020-10-31
  • 2020-10-07
  • 1970-01-01
  • 2016-05-16
  • 1970-01-01
相关资源
最近更新 更多