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
相关产品推荐
相关产品推荐

