Xcode13中SwiftUI List Section下多行Text文本意外裁剪问题求解
问题原因
这是Xcode 13.0版本中SwiftUI List的已知布局Bug,系统首次计算Section内Text组件的行高时出现计算偏差,导致文本默认最多显示2行就被裁剪。修改文本内容会触发布局重新计算,此时行高计算恢复正常,因此即使还原为原始文本内容也不会再出现裁剪现象。
解决方案
有三种可选修复方式:
- 为Text组件添加
lineLimit(nil)修饰符,显式声明允许文本自动换行无行数限制 - 为Text组件添加
.fixedSize(horizontal: false, vertical: true)修饰符,强制垂直方向自适应文本尺寸 - 升级Xcode到13.1及以上版本,该Bug已在后续版本中被官方修复
修复后示例代码
struct SWSettingsContactsView: View { var body: some View { List { Section { Text("Add your contacts so you can quickly and easily call them from your dashboard.") .lineLimit(nil) } .listRowBackground(Color(.secondarySystemBackground)) } } }
内容的提问来源于stack exchange,提问作者Joris
相关产品推荐
相关产品推荐

