为 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))
示例代码