This commit is contained in:
John Estropia
2020-08-30 10:24:10 +09:00
parent b26e50f777
commit 007da014f8
7 changed files with 12 additions and 113 deletions

View File

@@ -1,51 +0,0 @@
//
// Demo
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
import Combine
import SwiftUI
// MARK: - NetworkImageView
struct NetworkImageView: View {
// MARK: Internal
init(url: URL?) {
self.imageDownloader = .init(url: url)
}
// MARK: View
var body: some View {
if let image = self.imageDownloader.image {
return AnyView(
Image(uiImage: image)
.resizable()
.aspectRatio(contentMode: .fit)
)
}
else {
return AnyView(
Circle()
.colorMultiply(Color(UIColor.placeholderText))
.onAppear {
self.imageDownloader.fetchImage()
}
)
}
}
// MARK: Private
@ObservedObject
private var imageDownloader: ImageDownloader
}

View File

@@ -1,43 +0,0 @@
//
// Demo
// Copyright © 2020 John Rommel Estropia, Inc. All rights reserved.
import UIKit
// MARK: - UIImage
extension UIImage {
// MARK: Internal
convenience init(
color: UIColor,
size: CGSize = CGSize(width: 1, height: 1),
cornerRadius: CGFloat = 0
) {
let rect = CGRect(origin: .zero, size: size)
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(rect.size, false, scale)
defer {
UIGraphicsEndImageContext()
}
let context = UIGraphicsGetCurrentContext()!
if cornerRadius > 0 {
UIBezierPath(
roundedRect: rect,
cornerRadius: cornerRadius
)
.addClip()
}
color.setFill()
context.fill(rect)
self.init(
cgImage: UIGraphicsGetImageFromCurrentImageContext()!.cgImage!,
scale: scale,
orientation: .up
)
}
}