【问题标题】:Font works in storyboard but fails to work in iOS simuator (Xcode 8)字体在情节提要中有效,但在 iOS 模拟器(Xcode 8)中无效
【发布时间】:2017-06-10 10:00:44
【问题描述】:

我一直在处理应用程序的启动屏幕,但遇到了一个问题。我使用的自定义字体(大酒店)显示在情节提要中,但在模拟器中被默认字体替换。它应该像this,但发生了this。我已经在线尝试了所有内容:将其添加到 plist,设置目标,将其放入 Copy Bundle Resources。我到处寻找,但似乎找不到解决我问题的解决方案。我有什么办法可以解决这个问题吗?难道是因为它是一个启动屏幕?

【问题讨论】:

  • 看起来你的约束不起作用。
  • 限制适用于大酒店字体,因为字母彼此靠近。另一种字体的字母间距更大。
  • 你把它拖放到你的项目中了吗?
  • 查看这篇文章可能对stackoverflow.com/questions/40168344/…有帮助
  • 您是否在情节提要中设置此字体?

标签: ios swift xcode fonts


【解决方案1】:

按照以下步骤操作。

(1) 移除您的自定义字体

(2) 重新添加您的字体,例如,右键单击您的项目--> 添加文件--> 选择您的自定义字体。 (确保选中copy items if needed选项)。

(3) 清理(⌘+shift+K) + 构建(⌘+shift+B) 你的项目。

要检查自定义字体在运行时是否可用,请添加以下代码:

print(UIFont.fontNames(forFamilyName: "Your_Custom_font_name")) // if it returns empty array it means fonts are not available on runtime and it is not added correctly.

【讨论】:

  • 我尝试了几次,但我的问题仍然没有解决
【解决方案2】:

【讨论】:

  • 我已经检查过了,做了所有的事情,但还是不行。
  • @huvarda 你是怎么解决这个问题的?
【解决方案3】:

您是否在某处通过名称以编程方式设置字体? 我想通了,某种字体的名称不一定是名称,它在 Xcode 中显示。您可以通过在代码中的某处放置以下内容来检查 Xcode 中的真实字体名称:

for family: String in UIFont.familyNames {
    print("\(family)")
    for names: String in UIFont.fontNames(forFamilyName: family)
    {
        print("== \(names)")
    }
}

【讨论】:

  • 他说它“出现在情节提要中”,但没有出现在模拟器中。
  • 这并不意味着,他不是在某处通过“名称”以编程方式设置/覆盖字体,该名称显示在情节提要中,但与真实名称略有不同。
猜你喜欢
  • 2015-03-13
  • 2014-11-28
  • 2023-03-16
  • 2017-12-21
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
相关资源
最近更新 更多