iOS 17.5中SwiftUI中文正楷字体渲染异常问题求助
SwiftUI 中文正楷字体渲染问题解决方案
核心问题:你用的
STHeiti是苹果的黑体字体,本身就不是正楷,所以无论怎么设置都出不来正楷效果;预览正常可能是因为macOS预览环境自动 fallback 到了其他楷体字体,但真机iOS不会触发这个逻辑。解决方案1:直接使用iOS内置正楷字体
iOS系统自带两款常用正楷字体,直接指定正确名称即可:// 苹方楷体(iOS 11及以上版本支持) Text(text) .font(.custom("KaiTi SC", size: 24)) // 华文楷体(兼容更低版本iOS) Text(text) .font(.custom("STKaiti", size: 24))解决方案2:确认字体名称的准确性
字体的实际名称有时和文件名不一致,你可以在真机上打印所有可用字体,找到准确的正楷字体名称:import UIKit // 在View的onAppear回调中执行 .onAppear { for family in UIFont.familyNames { print("字体家族:\(family)") for name in UIFont.fontNames(forFamilyName: family) { print(" 字体名称:\(name)") } } }运行后在控制台搜索“Kai”或“楷”相关关键词,用找到的准确名称替换
custom方法里的参数。解决方案3:导入自定义正楷字体
如果系统内置字体不符合需求,可导入第三方正楷字体文件:- 将字体文件(如
.ttf/.otf)拖入Xcode项目,勾选「Add to targets」确保关联到你的应用目标。 - 在
Info.plist中添加Fonts provided by application数组,把字体文件名(如MyCustomKaiTi.ttf)作为元素加入。 - 用解决方案2的方法打印字体名称,找到该自定义字体的实际名称,再在
font(.custom(...))中使用。
- 将字体文件(如
内容的提问来源于stack exchange,提问作者joudan
相关产品推荐
相关产品推荐

