SwiftUI 2.0 Image如何載入網絡圖片(教程含源碼Combine)

WWDC20 忘記更新組件

WWDC20 給SwiftUI增加了很多組件,但是卻忘記網絡組件更新,例如讓Image支持載入網絡照片。本文將幫SwiftUI把這個短板補上。

本文價值與收穫

看完本文後,您將能夠作出下面的界面

Image如何載入網絡圖片

解決方案

之前在網上搜到了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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章