| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- //
- // ReservoirVolumeHUDView.swift
- // Naterade
- //
- // Created by Nathan Racklyeft on 5/2/16.
- // Copyright © 2016 Nathan Racklyeft. All rights reserved.
- //
- import UIKit
- public final class ReservoirVolumeHUDView: LevelHUDView, NibLoadable {
-
- override public var orderPriority: HUDViewOrderPriority {
- return 4
- }
- @IBOutlet private weak var volumeLabel: UILabel!
-
- public class func instantiate() -> ReservoirVolumeHUDView {
- return nib().instantiate(withOwner: nil, options: nil)[0] as! ReservoirVolumeHUDView
- }
- override public func awakeFromNib() {
- super.awakeFromNib()
- volumeLabel.isHidden = true
- }
- override public func levelDidChange() {
- super.levelDidChange()
- switch level {
- case .none:
- volumeLabel.isHidden = true
- case let x? where x > 0.25:
- volumeLabel.isHidden = true
- case let x? where x > 0.10:
- volumeLabel.textColor = tintColor
- volumeLabel.isHidden = false
- default:
- volumeLabel.textColor = tintColor
- volumeLabel.isHidden = false
- }
- }
- private lazy var timeFormatter: DateFormatter = {
- let formatter = DateFormatter()
- formatter.dateStyle = .none
- formatter.timeStyle = .short
- return formatter
- }()
- private lazy var numberFormatter: NumberFormatter = {
- let formatter = NumberFormatter()
- formatter.numberStyle = .decimal
- formatter.maximumFractionDigits = 0
- return formatter
- }()
- public func setReservoirVolume(volume: Double, at date: Date) {
- if let units = numberFormatter.string(from: volume) {
- volumeLabel.text = String(format: LocalizedString("%@U", comment: "Format string for reservoir volume. (1: The localized volume)"), units)
- let time = timeFormatter.string(from: date)
- caption?.text = time
- accessibilityValue = String(format: LocalizedString("%1$@ units remaining at %2$@", comment: "Accessibility format string for (1: localized volume)(2: time)"), units, time)
- }
- }
- public override func tintColorDidChange() {
- super.tintColorDidChange()
- volumeLabel.textColor = tintColor
- }
- }
|