如何在 SwiftUI 中删除 List 和 ScrollView 的底部填充
Posted
技术标签:
【中文标题】如何在 SwiftUI 中删除 List 和 ScrollView 的底部填充【英文标题】:How to remove bottom padding of List and ScrollView in SwiftUI 【发布时间】:2020-09-23 07:10:55 【问题描述】:我想删除底部填充,即红色空间之间的空白。有什么方法可以实现吗?
测试代码:
struct ContentView: View
var body: some View
return NavigationView
VStack
// the same result with using List instead of ScrollView
ScrollView
ForEach(1..<100) index in
HStack
Spacer()
Text("\(index)")
Spacer()
.background(Color.red)
HStack
Spacer()
Text("Test")
Spacer()
.background(Color.red)
.navigationBarTitle(Text("Test"), displayMode: .inline)
【问题讨论】:
【参考方案1】:你必须通过0
没有空格。默认情况下,它会根据上下文占用默认空间
VStack(spacing: 0)
// the same result with using List instead of ScrollView
ScrollView
.........
【讨论】:
我试过了,不是这样吗? List 视图的底部和下一个视图之间仍然存在间隙,无论它是否嵌入到间距为 0 的 VStack 中。看到这里,因为我正在尝试解决类似的问题。 ***.com/questions/67579763/…【参考方案2】:只需使用 GeometryReader
@State var contentSize: CGSize = .zero
ScrollView
YourContentView()
.overlay(
GeometryReader geo in
Color.clear.onAppear
contentSize = geo.size
)
.frame(maxWidth: .infinity, maxHeight: contentSize.height)
【讨论】:
以上是关于如何在 SwiftUI 中删除 List 和 ScrollView 的底部填充的主要内容,如果未能解决你的问题,请参考以下文章
iOS 15.3+ SwiftUI中List子项目禁止被删除但头部仍显示删除按钮的解决