SwiftData 数据到图像的转换在网格中看起来很奇怪

问题描述 投票:0回答:1

我有一个基本的 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)

但是如果你看下图,尺寸调整仅适用于第二行。第一个看起来超级奇怪。

有人能解释一下为什么吗?

swiftui grid mobile-development swift-data
1个回答
0
投票

好的,我明白了。

我将

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)

现在看起来好多了:

© www.soinside.com 2019 - 2024. All rights reserved.