美文网首页SwiftUI
SwiftUI—如何下载并使用图像视图显示网络图片

SwiftUI—如何下载并使用图像视图显示网络图片

作者: anny_4243 | 来源:发表于2020-07-13 13:50 被阅读0次

原文链接:https://github.com/fzhlee/SwiftUI-Guide#-%E7%AC%AC20%E8%8A%82image-web-

异步加载网络图片。
示例代码:

struct ContentView : View {
    
    @State private var remoteImage : UIImage? = nil //该属性拥有@State标记,所以当该属性的值发生变化时,和改属性绑定的图像视图,将立即显示新的图像内容
    let placeholderOne = UIImage(named: "Picture") //占位图
    
    var body: some View {
        Image(uiImage: self.remoteImage ?? placeholderOne!) //如果网络图片属性的值不为空,则显示下载后的网络图片,否则显示占位符图片
            .onAppear(perform: fetchRemoteImage) //当图片显示之后,将立即执行下载网络图片的方法
    }
    
    func fetchRemoteImage() //用来下载互联网上的图片
    {
        guard let url = URL(string: "http://hdjc8.com/images/logo.png") else { return } //初始化一个字符串常量,作为网络图片的地址
        URLSession.shared.dataTask(with: url){ (data, response, error) in //执行URLSession单例对象的数据任务方法,以下载指定的图片
            if let image = UIImage(data: data!){
                self.remoteImage = image //当图片下载成功之后,将下载后的数据转换为图像,并存储在remoteImage属性中
            }
            else{
                print(error ?? "") //如果图片下载失败之后,则在控制台输出错误信息
            }
        }.resume() //通过执行resume方法,开始下载指定路径的网络图片
    }
}

注:在进入实时预览模式之后,才会进行网络链接和数据的下载

相关文章

网友评论

    本文标题:SwiftUI—如何下载并使用图像视图显示网络图片

    本文链接:https://www.haomeiwen.com/subject/yeracktx.html