123456789101112131415161718192021222324252627282930313233343536373839404142 |
- //
- // UserPhoto.swift
- // fiveConstant
- //
- // Created by 李建 on 2023/1/30.
- //
- import SwiftUI
- import SwiftyUserDefaults
- struct UserPhoto: View {
- var baseUrl: String = "http://yongxu.yehaoji.cn:18199"
- @State var image:UIImage = UIImage()
- @Binding var url: String
- @StateObject var imageLoader: ImageLoader = ImageLoader()
- var body: some View {
- Image(uiImage: image)
- .resizable()
- .aspectRatio(contentMode: .fit)
- .clipShape(Circle())
- .edgesIgnoringSafeArea(.top)
- .onReceive(imageLoader.didChange) {
- data in self.image = UIImage(data: data) ?? UIImage()
- }
- .onChange(of: url, perform: { value in
- imageLoader.loadImage(urlString: "\(baseUrl)\(value)")
- })
- .onAppear {
- imageLoader.loadImage(urlString: "\(baseUrl)\(Defaults[\.photo] ?? "")")
- }
- }
- }
- struct UserPhoto_Previews: PreviewProvider {
- @State static var urlStr: String = "http://yongxu.yehaoji.cn:18199/s/yongxu/1t7svi0azn0cplrmpse4x6s2b0cq6q7v/cropped9206103138767981437.jpg"
- static var previews: some View {
- UserPhoto(url: $urlStr)
- }
- }
|