SwiftUI systemMedium尺寸小组件HStack多余间距消除问题
解决方案
你代码中的多余空白来源于两个不合理的布局配置:一是给PercentageMediumView添加了固定值为80的右内边距,二是HStack中同时加入了Spacer,两者叠加后导致两个功能视图的间距远超设计要求。
修复步骤
- 删除
PercentageMediumView上的.padding(.trailing, 80.0)修饰符,这个硬编码的大间距是多余空白的核心诱因 - 如果你需要两个视图分别贴小组件左右两端对齐,直接保留HStack中的Spacer即可;如果需要控制两个视图的固定间距,可直接在HStack初始化时指定
spacing参数,不需要同时使用Spacer
修复后代码示例
case .systemMedium: ZStack { Color("Yellow") // spacing参数可根据设计要求调整为对应数值,需要两端对齐的话保留Spacer即可 HStack(alignment: .center, spacing: 0) { PercentageMediumView() Spacer(minLength: 0) Last14MediumView() } // 若需要避免内容贴小组件边缘,可统一给HStack加左右内边距,适配性更强 // .padding(.horizontal, 12) }
内容的提问来源于stack exchange,提问作者ManjunathK
相关产品推荐
相关产品推荐

