小编Bil*_*ion的帖子

如何在 AsyncImage 中访问图像以在检索图像后保存图像?(斯威夫特用户界面)

我目前正在尝试找到一种方法来保存图像AsyncImage,以便我可以立即缓存它(无需使用单独的图像检索过程)。

这是我的代码和我用来尝试保存它的AsyncImage扩展。View

AsyncImage(url: asyncUrl) { phase in
    
    switch phase {
    case .empty:
        ProgressView()
    case .success(let image):
        image
            .resizable()
            .scaledToFit()
        urlImageModel.image = image.snapshot()
    case .failure:
        Image(uiImage: UrlImageView.defaultImage!)
            .resizable()
            .scaledToFit()
    @unknown default:
        Image(uiImage: UrlImageView.defaultImage!)
            .resizable()
            .scaledToFit()
    }
}

extension View {
    func snapshot() -> UIImage {
        let controller = UIHostingController(rootView: self)
        let view = controller.view
        
        let targetSize = controller.view.intrinsicContentSize
        view?.bounds = CGRect(origin: .zero, size: targetSize)
        view?.backgroundColor = .clear
        
        let renderer = UIGraphicsImageRenderer(size: targetSize)
        
        return renderer.image { _ …
Run Code Online (Sandbox Code Playgroud)

ios asyncimageview swiftui

7
推荐指数
1
解决办法
3109
查看次数

标签 统计

asyncimageview ×1

ios ×1

swiftui ×1