带有URLRequest的异步图像

qzlgjiam  于 2022-10-04  发布在  Swift
关注(0)|答案(3)|浏览(153)

我正在使用URLRequest从我的服务器接收带有POST请求的图像。

我注意到AsyncImage视图目前不支持URLRequest作为输入。

目前,我有两个选择:

1.使用UIImage(data:)
1.构建一个定制的AsyncImage,如以下链接所示:https://www.donnywals.com/using-swifts-async-await-to-build-an-image-loader/

这些真的是唯一的选择吗?或许我错过了什么?

vybvopom

vybvopom1#

可以对视图中的图像使用.task()修改器,如下所示:

@State private var myImage: UIImage? = nil

    var body: some View {
        Group {
            if myImage == nil {
                ProgressView()
            } else {
                Image(uiImage: myImage!)
                    .resizable()
                    .scaledToFit()
            }
        }
        .task {
            let downloadedImage = await UIImage(data: myURLRequestHere())) ?? UIImage()      // URLRequest to return data
            DispatchQueue.main.async {
                withAnimation {
                    myImage = downloadedImage
                }
            }
        }
    }

它将在iOS 15上运行。

x33g5p2x

x33g5p2x2#

我会亲自根据您的需求定制一个。我最近试着与联合出版商取得更多联系,得到一些像样的东西很简单,如果你想尝试/贡献/以它为例,请随意:Simple iOS 13 AsyncImage

mgdq6dx1

mgdq6dx13#

您可以下载带有URL字符串的异步图像示例:

AsyncImage(url: URL(string: imageURL)){image in
                image
                    .resizable()
                    .frame(width: 75, height: 75)
                    .scaledToFit()
                    .cornerRadius(10)

相关问题