Swift 如何使单元格独立对齐的类似集合的视图?
共有三列,如果查看图像,单元格的y轴位置取决于行。例如,无论每个图像/单元格的高度如何,单元格都是隔开的,以便行与其相邻单元格保持左右对齐。这会产生令人尴尬的垂直空白。我希望单元格根据垂直空间容差向上或向下移动,而不是创建空白,以便行与相邻行对齐。我喜欢LazyGrid动态加载单元并重用它们 这是我的密码:Swift 如何使单元格独立对齐的类似集合的视图?,swift,swiftui,Swift,Swiftui,共有三列,如果查看图像,单元格的y轴位置取决于行。例如,无论每个图像/单元格的高度如何,单元格都是隔开的,以便行与其相邻单元格保持左右对齐。这会产生令人尴尬的垂直空白。我希望单元格根据垂直空间容差向上或向下移动,而不是创建空白,以便行与相邻行对齐。我喜欢LazyGrid动态加载单元并重用它们 这是我的密码: import SwiftUI struct ContentView: View { private var symbols = ["keyboard",
import SwiftUI
struct ContentView: View {
private var symbols = ["keyboard", "hifispeaker.fill", "printer.fill", "tv.fill", "desktopcomputer", "headphones", "tv.music.note", "mic", "plus.bubble", "video"]
private var colors: [Color] = [.yellow, .purple, .green]
var body: some View {
ScrollView {
LazyVGrid(columns: .init(3), alignment: .center, spacing: 10) {
ForEach((0...999), id: \.self) {
Image(systemName: symbols[$0 % symbols.count])
.font(.system(size: 30))
.frame(width: 50, height: CGFloat.random(in: 0...100))
.background(colors[$0 % colors.count])
.cornerRadius(10)
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
extension Array where Element == GridItem {
init(_ count: Int) {
self = Array(repeating: GridItem(.flexible()), count: count)
}
}
我可能误解了你的问题,但我认为这不可能用
LazyVGrid
——如果没有行/列对齐,它就不再是“网格”。你不能用LazyVGrid
,不可能!,但是你可以用定制的方式来实现。好的,我编辑了标题。我没有嫁给懒汉。我该怎么做呢?你可以用3个并排的VStack/LazyVStack,这就是你的答案你自己说过,“VStack”,V=Vertical,VStack是一个垂直堆栈,内容是垂直组织的。