作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 iOS 开发 WidgetKit ,但我真的不知道如何下载 WidgetKit 的图像。
WidgetKit 当前下载一组对象,每个对象都有一个图像的 URL。这个想法是每个对象都会产生 SimpleEntry
对于Timeline
.
实现这一目标的最佳方法是什么?我读到 WidgetKit 不应该使用 ObservableObject
.我在时间线提供程序中获取一组对象,这似乎是 Apple 推荐的。但是我是否也在那里下载图像并等到所有完成发送时间线?
任何建议都会非常有帮助,
最佳答案
是的,您应该在时间线提供程序中下载图像,并在完成后发送时间线。引用以下recommendation由 Apple 框架工程师编写。
我使用调度组来实现这一点。
就像是:
let imageRequestGroup = DispatchGroup()
var images: [UIImage] = []
for imageUrl in imageUrls {
imageRequestGroup.enter()
yourAsyncUIImageProvider.getImage(fromUrl: imageUrl) { image in
images.append(image)
imageRequestGroup.leave()
}
}
imageRequestGroup.notify(queue: .main) {
completion(images)
}
然后我使用 SwiftUI 的 Image(uiImage:) 初始化程序来显示图像
关于ios - 如何为 WidgetKit 异步下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63173928/
我是一名优秀的程序员,十分优秀!