Icon.swift 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //
  2. // Icon.swift
  3. // MKRingProgressViewExample
  4. //
  5. // Created by Max Konovalov on 25/05/2018.
  6. // Copyright © 2018 Max Konovalov. All rights reserved.
  7. //
  8. import UIKit
  9. func generateAppIcon(scale: CGFloat = 1.0) -> UIImage {
  10. let size = CGSize(width: 512, height: 512)
  11. let rect = CGRect(origin: .zero, size: size)
  12. let icon = UIView(frame: rect)
  13. icon.backgroundColor = #colorLiteral(red: 0.1176470588, green: 0.1176470588, blue: 0.1254901961, alpha: 1)
  14. let group = RingProgressGroupView(frame: icon.bounds.insetBy(dx: 33, dy: 33))
  15. group.ringWidth = 50
  16. group.ringSpacing = 10
  17. group.ring1StartColor = #colorLiteral(red: 0.8823529412, green: 0, blue: 0.07843137255, alpha: 1)
  18. group.ring1EndColor = #colorLiteral(red: 1, green: 0.1960784314, blue: 0.5294117647, alpha: 1)
  19. group.ring2StartColor = #colorLiteral(red: 0.2156862745, green: 0.862745098, blue: 0, alpha: 1)
  20. group.ring2EndColor = #colorLiteral(red: 0.7176470588, green: 1, blue: 0, alpha: 1)
  21. group.ring3StartColor = #colorLiteral(red: 0, green: 0.7294117647, blue: 0.8823529412, alpha: 1)
  22. group.ring3EndColor = #colorLiteral(red: 0, green: 0.9803921569, blue: 0.8156862745, alpha: 1)
  23. group.ring1.progress = 1.0
  24. group.ring2.progress = 1.0
  25. group.ring3.progress = 1.0
  26. icon.addSubview(group)
  27. UIGraphicsBeginImageContextWithOptions(size, true, scale)
  28. icon.drawHierarchy(in: rect, afterScreenUpdates: true)
  29. let image = UIGraphicsGetImageFromCurrentImageContext()!
  30. UIGraphicsEndImageContext()
  31. return image
  32. }