使用SwiftUI,我创建了一个VStack,其中包含一些固定元素和一个list元素。原因是,用户仅应滚动固定元素下方的区域。现在,我看到第二个固定元素和列表之间有一个空格。我不知道这个空间是从哪里来的,并想摆脱它,但是不知道如何。该区域标记为红色。
struct DashboardView : View, CoreDataInjected {
var body: some View {
GeometryReader { geometry in
VStack {
ScopeSelectorView().frame(maxWidth: .infinity).background(ColorPalette.gray)
BalanceNumberView().frame(maxWidth: .infinity)
List {
DashboardNavigationView(
height: geometry.size.height - ScopeSelectorView.height - BalanceNumberView.height
).frame(maxWidth: .infinity).listRowInsets(.zero)
}
}
}.background(Color.red).edgesIgnoringSafeArea(.all)
}
}
答案 0 :(得分:9)
由于您没有将spacing
参数传递给VStack
,因此它将根据上下文选择默认间距。如果您不希望有间距,请明确传递0。
VStack(spacing: 0) {
// content here
}
答案 1 :(得分:4)
您可以在任何视图上使用offset
修饰符,以使每个内容的外观分别不同:
VStack {
Circle()
Circle().offset(x: 0, y: -20)
Circle().offset(x: 0, y: 40)
}
请注意,它在两个方向上都可能为负。
另外VStack
和HStack
都有一个名为spacing
的参数,您可以将其设置为0
或将其应用于所有元素的任何其他数字。
VStack(spacing: 0) {
Circle()
Circle()
}
请注意为负数。
答案 2 :(得分:1)
我用这个
.padding(.top, -8)
此处有更多详细信息,
VStack(spacing: 0) {
List { ...
}
VStack{ ... }.padding(.top, -8)
}