You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:导入自定义正楷字体
    如果系统内置字体不符合需求,可导入第三方正楷字体文件:

    1. 将字体文件(如.ttf/.otf)拖入Xcode项目,勾选「Add to targets」确保关联到你的应用目标。
    2. 在Info.plist中添加Fonts provided by application数组,把字体文件名(如MyCustomKaiTi.ttf)作为元素加入。
    3. 用解决方案2的方法打印字体名称,找到该自定义字体的实际名称,再在font(.custom(...))中使用。

内容的提问来源于stack exchange,提问作者joudan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:52:06