美文网首页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