SwiftUI 2.0 Image如何载入网络图片(教程含源码Combine)

WWDC20 忘记更新组件

WWDC20 给SwiftUI增加了很多组件,但是却忘记网络组件更新,例如让Image支持载入网络照片。本文将帮SwiftUI把这个短板补上。

本文价值与收获

看完本文后,您将能够作出下面的界面

SwiftUI 2.0 Image如何载入网络图片(教程含源码Combine)_第1张图片

解决方案

之前在网上搜到了URLImage的解决方案,不过测试之后发现了很多问题。于是还是计划自己手写一个吧。其实苹果到Combine组件早就能够满足这个类小需求了。

实战代码

1、 理想化到URLImage组件

struct URLImage: View {
   @ObservedObject var imageLoader:ImageLoader
   @State var image:UIImage = UIImage()

   init(withURL url:String) {
       imageLoader = ImageLoader(urlString:url)
   }

   var body: some View {
       VStack {
           Image(uiImage: image)
               .resizable()
               .aspectRatio(contentMode: .fit)
               .frame(width:100, height:100)
       }.onReceive(imageLoader.d

你可能感兴趣的:(SwiftUI源码大全)