Skip to content

Instantly share code, notes, and snippets.

@apple-avadhesh
Created February 2, 2021 08:09
Show Gist options
  • Save apple-avadhesh/64608ae041f5fa9049d7232e90425011 to your computer and use it in GitHub Desktop.
Save apple-avadhesh/64608ae041f5fa9049d7232e90425011 to your computer and use it in GitHub Desktop.
Basic Networking SwiftUI - Load Image From URL
import SwiftUI
struct ContentView: View {
@State private var logoImage: UIImage?
var body: some View {
Image(uiImage: logoImage ?? UIImage())
.resizable()
.scaledToFit()
.frame(width: 200, height: 200, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
.onAppear(perform: {
loadImageFromURL("https://www.iosapplication.net/wp-content/uploads/2020/08/Screenshot-2020-08-17-at-2.54.03-PM.png")
})
}
private func loadImageFromURL(_ strURL: String) {
guard let url = URL(string: strURL) else {
return
}
NetworkManager.loadData(url: url) { (image) in
self.logoImage = image
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
class NetworkManager: Any {
static func loadData(url: URL, completion:@escaping (UIImage?) -> ()) {
URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let data = data, error == nil else {
completion(nil)
return
}
completion(UIImage(data: data))
}.resume()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment