我有大量的卡片,我需要在一个vGrid中显示。然而,卡片有动态高度,我想要做的是让卡片在列中与顶部对齐。
这是当前的设置:
let resultGridLayout = [GridItem(.adaptive(minimum: 160), spacing: 10)]
func itemsView() -> some View {
VStack {
filterButton()
.padding(.bottom)
LazyVGrid(columns: resultGridLayout, spacing: Constants.ItemsGrid.spacing) {
ForEach(MockData.resultsData, id: \.id) { result in
ProductCardView(viewModel: .init(container: viewModel.container, menuItem: result))
}
}
.padding(.horizontal, Constants.ItemsGrid.padding)
}
}以下是当前的布局:

所以每一项都在它的列空间中居中,而我想要做的是让它们对齐每一行的顶部。
显然,用于alignment的vGrid修饰符允许我们水平对齐(.center、.leading、.trailing等),但是如何阻止这些在中间垂直对齐呢?
发布于 2022-05-11 02:49:13
我假设您想要对齐网格项本身,比如
let resultGridLayout = [GridItem(.adaptive(minimum: 160), spacing: 10,
alignment: .top)] // << here !!

用Xcode 13.3 / iOS 15.4测试(在某些复制上)
https://stackoverflow.com/questions/72193878
复制相似问题