我想显示一个存储在 EnvironmentObject 中的图像(类型 UIImage)。此 EnvironmentObject 包含一个包含 UIImage 元素的结构数组。在一个视图中,我想显示这个数组的图像,但这不起作用。
这是结构:
struct TestStruct: Identifiable {
var id: String
var name: String
var image: UIImage
init() {
id = ""
name = ""
image = UIImage.init()
}
}
这里是 ModelData 类:
final class ModelData: ObservableObject {
@Published var testStruct: [TestStruct] = []
}
这是主应用程序代码中 modelData 的实例化:
struct TestApp: App {
@ObservedObject private var modelData = ModelData()
init() {...
modelData 的内容是从 Firebase 数据库和 Firebase 存储中加载的。这实际上有效,我可以在调试预览中的 modelData.testStruct[...].image 中看到下载的图像。
从一个视图来看,我想引用来自modelData的图像:
struct StructContentView: View {
@EnvironmentObject var modelData: ModelData
var body: some View {
ScrollView {
Image(uiImage: modelData.testStruct[0].image)
.frame(width: 64.0, height: 64.0)
.foregroundColor(.red)
}
}
}
有人能帮我吗?我通常对 ObservableObject/EnvironmentObject 和那些东西感到困惑,但我能够在 TextView 中显示例如 modelData.testStruct[0] 的字段“名称”。将 UIImage 传递给 Image 视图是否错误,也许?还是那里需要其他东西?