UILabel 在界面构建器和模拟器中的显示方式不同

Difference in how a UILabel is shown in the interface builder and in the simulator

我创建了一个 .xib 文件并添加了一个带有属性文本的 UILabel。标签的内容由 2 个词组成 - 一个是常规字体,另一个是粗体。 界面生成器正确显示标签如下

但是,当应用程序在模拟器上 运行 时,显示如下 -

谁能指出为什么会这样?

请尝试

override func viewWillAppear(_ animated: Bool) {
        view.layoutIfNeeded()
}

这可能是问题所在。

由于它使用的是Arial等系统字体,可能是无法识别自定义字体的问题。请尝试以下操作:

  1. 您是否将自定义字体文件添加到您的 Xcode 项目和构建目标中?

  2. 您是否使用 UIAppFonts 键将它们添加到 Info.plist?此键应包含您添加到项目中的字体文件的名称数组(例如 Custom-Font.ttf