我有一个基本的 SwiftData 模型,其中
Images
存储为 Data
。@State private var selectedImages = [PhotosPickerItem]()
@State private var images = [Data]()
在我看来,它看起来像这样:
let columns = [
GridItem(.adaptive(minimum: 80))
]
ScrollView {
LazyVGrid(columns: columns) {
ForEach(images, id: \.self) { image in
let uiImage = UIImage(data: image)
Image(uiImage: uiImage!)
.resizable()
.aspectRatio(contentMode: .fill)
}
}
}
.padding(.horizontal)
但是如果你看下图,尺寸调整仅适用于第二行。第一个看起来超级奇怪。
有人能解释一下为什么吗?
好的,我明白了。
我将
columns
更改为:
let columns = [
GridItem(.flexible()),
GridItem(.flexible()),
GridItem(.flexible())
]
并删除了
.aspectRatio
并给图像固定了高度
ScrollView {
LazyVGrid(columns: columns) {
ForEach(images, id: \.self) { image in
let uiImage = UIImage(data: image)
Image(uiImage: uiImage!)
.resizable()
.frame(height: 85)
}
}
}
.padding(.horizontal)