SegmentedGaugeBarView.swift 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. //
  2. // SegmentedGaugeBarView.swift
  3. // LoopKitUI
  4. //
  5. // Created by Michael Pangburn on 3/22/19.
  6. // Copyright © 2019 LoopKit Authors. All rights reserved.
  7. //
  8. import UIKit
  9. @IBDesignable
  10. class SegmentedGaugeBarView: UIView {
  11. @IBInspectable
  12. var numberOfSegments: Int {
  13. get {
  14. return gaugeLayer.numberOfSegments
  15. }
  16. set {
  17. gaugeLayer.numberOfSegments = newValue
  18. }
  19. }
  20. @IBInspectable
  21. var startColor: UIColor {
  22. get {
  23. return UIColor(cgColor: gaugeLayer.startColor)
  24. }
  25. set {
  26. gaugeLayer.startColor = newValue.cgColor
  27. }
  28. }
  29. @IBInspectable
  30. var endColor: UIColor {
  31. get {
  32. return UIColor(cgColor: gaugeLayer.endColor)
  33. }
  34. set {
  35. gaugeLayer.endColor = newValue.cgColor
  36. }
  37. }
  38. @IBInspectable
  39. var borderWidth: CGFloat {
  40. get {
  41. return gaugeLayer.gaugeBorderWidth
  42. }
  43. set {
  44. gaugeLayer.gaugeBorderWidth = newValue
  45. }
  46. }
  47. @IBInspectable
  48. var borderColor: UIColor {
  49. get {
  50. return UIColor(cgColor: gaugeLayer.gaugeBorderColor)
  51. }
  52. set {
  53. gaugeLayer.gaugeBorderColor = newValue.cgColor
  54. }
  55. }
  56. @IBInspectable
  57. var progress: Double {
  58. get {
  59. return Double(gaugeLayer.progress)
  60. }
  61. set {
  62. return gaugeLayer.progress = CGFloat(newValue)
  63. }
  64. }
  65. override class var layerClass: AnyClass {
  66. return SegmentedGaugeBarLayer.self
  67. }
  68. private var gaugeLayer: SegmentedGaugeBarLayer {
  69. return layer as! SegmentedGaugeBarLayer
  70. }
  71. override func layoutSubviews() {
  72. super.layoutSubviews()
  73. layer.cornerRadius = frame.height / 2
  74. }
  75. }