WWDC20 忘记更新组件
WWDC20 给SwiftUI增加了很多组件,但是却忘记网络组件更新,例如让Image支持载入网络照片。本文将帮SwiftUI把这个短板补上。
本文价值与收获
看完本文后,您将能够作出下面的界面
解决方案
之前在网上搜到了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)
.fr