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

SwiftUI自定义字体尺寸下如何启用文本自动断字?

SwiftUI自定义字体尺寸下启用自动断字的解决方法

问题还原

使用预定义字体枚举(如.body)时,Text组件会自动断字,但通过.system(size:)设置自定义字体尺寸时,该功能默认失效,手动添加软连字符效率极低。

解决方案

方案1:显式启用断字策略

给Text添加hyphenationFactor(1.0)修饰符,强制开启自动断字:

HStack {
    Text("Gewerberechtsschutzversicherung")
        .font(.body)
        .background(.red)
    Text("Gewerberechtsschutzversicherung")
        .font(.system(size: 17))
        .hyphenationFactor(1.0) // 启用自动断字
        .background(.blue)
}

hyphenationFactor取值范围为0~1,1表示完全启用断字,0表示禁用。

方案2:基于预定义样式修改尺寸

如果需要遵循样式指南的尺寸要求,可以基于预定义字体样式调整大小,这样能保留原有的排版规则(包括自动断字):

Text("Gewerberechtsschutzversicherung")
    .font(.system(.body, size: 17))
    .background(.blue)

这种方式既实现了自定义尺寸,又继承了.body样式的默认断字配置。

原因说明

预定义字体枚举(如.body)属于Apple动态类型样式,内置了断字、行高、字间距等全套排版规则;而直接调用.system(size:)创建的是基础系统字体,默认未启用断字,因此需要显式配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:35:00