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

如何解决UILabel将单个单词拆分至多行的问题?

iOS UILabel单词拆分换行问题的解决办法

针对固定宽高UILabel出现单个单词被拆分到两行的问题,可通过以下步骤解决:

  • 启用文本收紧截断功能,让系统优先调整字符间距避免拆分单词:
    确保lineBreakMode设为.byTruncatingTail,同时开启allowsDefaultTighteningForTruncation = true,这个属性会在文本即将截断前收紧字符间距,尽可能让完整单词留在一行。

  • 禁用自动断字功能:
    通过NSParagraphStyle设置hyphenationFactor = 0.0,完全关闭系统的自动断字逻辑,从根源避免单词被拆分。

  • 保留自动缩小字体的基础设置:
    确保adjustsFontSizeToFitWidth = true和minimumScaleFactor按你的需求配置,让文本优先通过缩小字体适配,实在放不下再截断。

完整代码示例:

// 基础配置
label.numberOfLines = 0
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.6 // 按实际需求调整最小比例
label.lineBreakMode = .byTruncatingTail
label.allowsDefaultTighteningForTruncation = true

// 禁用自动断字的段落样式
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.hyphenationFactor = 0.0
paragraphStyle.lineBreakMode = .byTruncatingTail
paragraphStyle.alignment = label.textAlignment

// 应用富文本样式
if let originalText = label.text {
    let attributedText = NSAttributedString(string: originalText, attributes: [.paragraphStyle: paragraphStyle])
    label.attributedText = attributedText
}

如果以上设置仍未解决问题,可检查label的宽高约束是否存在冲突,或尝试调整minimumScaleFactor的数值,给字体缩小留足空间,减少文本因宽度不足被迫拆分单词的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:12:14