如何自定义SwiftUI.Text的默认字体?避免重复调用font修饰器
自定义SwiftUI Text的默认字体
要实现直接使用Text("Hello world")就自动应用自定义字体anuRegular(14),可以通过以下步骤完成:
1. 确保自定义字体已正确导入项目
- 将你的字体文件(如
anuRegular.ttf)添加到Xcode项目中,勾选目标应用的"Add to targets"选项。 - 在项目的
Info.plist文件中,添加Fonts provided by application数组键,将字体文件名(如anuRegular.ttf)作为数组元素加入。 - 验证字体的正确名称:可以在代码中打印
UIFont.familyNames,找到该字体对应的内部名称(注意文件名和字体内部名称可能不一致)。
2. 设置全局默认字体
通过SwiftUI的环境变量,在应用入口全局配置默认字体,这样所有Text组件都会自动使用该字体:
@main struct YourApp: App { var body: some Scene { WindowGroup { ContentView() // 替换为你的字体名称和字号 .environment(\.font, Font.custom("anuRegular", size: 14)) } } }
可选:支持动态字体大小
如果希望字号跟随系统字体大小设置自动调整,可以使用带相对基准的初始化方式:
.environment(\.font, Font.custom("anuRegular", size: 14, relativeTo: .body))
局部范围设置
如果不需要全局生效,只想在某个视图范围内设置默认字体,只需将.environment(\.font, ...)修饰符添加到对应的父视图上即可。
内容的提问来源于stack exchange,提问作者Mixko
相关产品推荐
相关产品推荐

