LevelHUDView.swift 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // LevelHUDView.swift
  3. // Loop
  4. //
  5. // Created by Nate Racklyeft on 2/4/17.
  6. // Copyright © 2017 LoopKit Authors. All rights reserved.
  7. //
  8. import UIKit
  9. open class LevelHUDView: BaseHUDView {
  10. @IBOutlet public weak var levelMaskView: LevelMaskView!
  11. override open func awakeFromNib() {
  12. super.awakeFromNib()
  13. updateColor()
  14. accessibilityValue = LocalizedString("Unknown", comment: "Accessibility value for an unknown value")
  15. }
  16. override open func stateColorsDidUpdate() {
  17. super.stateColorsDidUpdate()
  18. updateColor()
  19. }
  20. open func updateColor() {
  21. levelMaskView.tintColor = nil
  22. switch level {
  23. case .none:
  24. tintColor = stateColors?.unknown
  25. case let x? where x > 0.25:
  26. tintColor = stateColors?.normal
  27. case let x? where x > 0.10:
  28. tintColor = stateColors?.warning
  29. levelMaskView.tintColor = stateColors?.warning
  30. default:
  31. tintColor = stateColors?.error
  32. }
  33. }
  34. public var level: Double? {
  35. didSet {
  36. levelMaskView.value = level ?? 1.0
  37. levelDidChange()
  38. }
  39. }
  40. open func levelDidChange() {
  41. updateColor()
  42. }
  43. }