Skip to content

Instantly share code, notes, and snippets.

@Koshimizu-Takehito
Created May 28, 2022 09:39
Show Gist options
  • Save Koshimizu-Takehito/737381f5e55678e691205fe11fe16e93 to your computer and use it in GitHub Desktop.
Save Koshimizu-Takehito/737381f5e55678e691205fe11fe16e93 to your computer and use it in GitHub Desktop.
import SwiftUI
import class UIKit.UIImage
struct AppleLogo: View {
private let colors: [Color] = [
.green,
.green,
.green,
.yellow,
.orange,
.red,
.purple,
.blue
]
private let ratio: CGFloat = {
let image = UIImage(systemName: "applelogo")!
return image.size.width/image.size.height
}()
var body: some View {
Canvas { context, size in
let edge = min(size.width, size.height)
context.clipToLayer { context in
var rect = CGRect(x: 0, y: 0, width: edge, height: edge)
rect.origin.x = (1-ratio) * rect.size.width / 2
rect.size.width = ratio * rect.size.width
context.draw(Image(systemName: "applelogo"), in: rect)
}
var rect = CGRect(
x: 0, y: 0, width: edge, height: edge/CGFloat(colors.count)
)
for (offset, color) in colors.enumerated() {
rect.origin.y = CGFloat(offset) * rect.size.height
context.fill(Path(rect), with: .color(color))
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
AppleLogo()
.frame(width: 300, height: 300)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment