2

iOS Widget 的简单代码,我已经验证了 meme 加载了来自早期 HTTP 请求的 meme.url 值。我还检查了自己打印 url 文本,这也有效,但我无法使用 URLImage 包加载图像。我也尝试过小部件和内容视图,但没有结果。有任何想法吗?

meme.url是一个可选的 URL 类型。

网址图片:https ://github.com/dmytro-anokhin/url-image

注意:更具体地说,占位符确实出现,而不是来自 url 的图像。这是一个示例网址:https ://i.redd.it/zey35zvw4gq51.jpg

import SwiftUI
import URLImage

struct MemeView: View {
    let meme: MemeModel

    var body: some View {
        URLImage(meme.url!, placeholder: Image(systemName: "square"))
    }
}
4

1 回答 1

1

弄清楚了。不需要 URLImage。问题是小部件无法处理异步调用,因此您必须像这样包装它:

struct MemeView: View {
var meme: MemeModel

var body: some View {
    Group {
        if let url = meme.url!, let imageData = try? Data(contentsOf: url),
       let uiImage = UIImage(data: imageData) {

       Image(uiImage: uiImage)
         .resizable()
         .aspectRatio(contentMode: .fill)
      }
      else {
       Image("placeholder-image")
      }
    }

}

于 2020-10-01T21:23:33.883 回答