为 iOS 应用添加自定义字体

了解如何在 iOS 应用中添加和使用自定义字体。

为 iOS 应用添加自定义字体

添加字体文件到项目

最佳实践是,在项目中创建一个专门的文件夹来存放字体文件,例如为"Fonts"或"Resources/Fonts"。

.ttf 或者 .otf 字体拖拽到文件夹中。

在 Info.plist 中注册字体

打开项目的 Info.plist 文件,添加一个名为 UIAppFonts 的键。

这是一个数组类型,然后添加一个条目,输入完整的字体文件名(包含后缀名)

在 SwiftUI 中使用自定义字体

必须通过字体的 PostScript 名称来调用字体,你可以在「字体册」中查询:

下面这个代码不会生效:

Text("花樣年華")
  .font(.custom("汇文明朝体", size: 20))

下面这个代码有效:

Text("花樣年華")
   .font(.custom("Huiwen-mincho", size: 20))

不生效的常见原因

使用 fontWeight 修饰器

如果自定义字体不支持 Weight 的话,设置 fontDesign 会导致自定义字体不生效。

可以在「字体册」中看到字体支持的 Weight:

如果看不到,双击进入字体详情页面。

如果字体支持多个 Weight,字体册中会显示切换按钮:

动态设置子组件自定义字体大小

由于在 SwiftUI 中,使用自定义自动的唯一方法是使用 .font(.custom("Huiwen-mincho", size: UIFont.systemFontSize))

因此,没有办法在父组件中统一设置自定义字体,并在子组件中单独设置字体大小。

打字机字体

ORADANO 明朝体(不推荐)

ORADANO 明朝体(Oradano-mincho-GSRR)。

这个字体很多中文字体没有,不推荐使用。

润植家刻本简体(不推荐)

同上,这个字体也很多无法显示。

属于 润植家字体 字体系列的一个:https://www.runzhijia.art/nzgrfonts/nzgrfonts.html

很多字都无法显示

汇文明朝体(推荐)

PostScript 名称:huiwenMincho

字体基本上都能够正常显示。

衬线字体

思源宋体

PistScript 名称:SourceHanSerifSC-SemiBold,记得带上后面的 Weight

 .font(.custom("SourceHanSerifSC-SemiBold", size: 20))

示例代码