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

SwiftUI技术问询:Text视图选中后行间距改变,是否为Bug?

结论:这是SwiftUI的预期行为,并非Bug

当你给Text启用textSelection(.enabled)后,文本进入可选中状态时,系统会调整文本的排版上下文——比如为了适配选择高亮层的绘制、选择手柄的布局,会默认微调行间距。这种变化在Text带有padding、背景色,且嵌套在List、HStack这类容器中时,视觉差异会更明显。

如果想消除这个视觉变化,你可以手动显式设置固定行间距,覆盖系统的动态调整:

在你的Text组件上添加.lineSpacing(_:)修饰符,设置一个符合你需求的固定值:

Text(message.content)
    .textSelection(.enabled)
    .font(.title2)
    .lineSpacing(4) // 数值可根据实际需求调整
    .padding()
    .background(message.role == .user ? Color.blue : Color.gray.opacity(0.4))
    .foregroundColor(.white)
    .cornerRadius(8)

设置固定行间距后,无论文本是否被选中,行间距都会保持一致,解决你看到的视觉差异问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:25:32