AlarmViewController.swift 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // AlarmViewController.swift
  3. // LoopFollow
  4. //
  5. // Created by Jon Fawcett on 6/3/20.
  6. // Copyright © 2020 Jon Fawcett. All rights reserved.
  7. //
  8. import UIKit
  9. import Eureka
  10. class AlarmViewController: FormViewController {
  11. override func viewDidLoad() {
  12. super.viewDidLoad()
  13. form +++ Section(header: "High BG Alert", footer: "Alerts when blood glucose raises above this value")
  14. <<< SliderRow.glucoseLevelSlider(initialValue: 180, minimumValue: 100, maximumValue: 400)
  15. }
  16. }
  17. extension SliderRow {
  18. class func glucoseLevelSlider(initialValue: Float, minimumValue: Float, maximumValue: Float, snapIncrementForMgDl: Float = 1.0) -> SliderRow {
  19. return SliderRow() { row in
  20. row.value = 180
  21. }.cellSetup { cell, row in
  22. let minimumValue: Float = 40
  23. let maximumValue: Float = 400
  24. cell.slider.minimumValue = minimumValue
  25. cell.slider.maximumValue = maximumValue
  26. row.displayValueFor = { value in
  27. guard let value = value else { return "" }
  28. let units = "mg/dl"
  29. return units
  30. }
  31. // fixed width for value label
  32. let widthConstraint = NSLayoutConstraint(item: cell.valueLabel!, attribute: NSLayoutConstraint.Attribute.width, relatedBy: NSLayoutConstraint.Relation.equal, toItem: nil, attribute: NSLayoutConstraint.Attribute.notAnAttribute, multiplier: 1, constant: 96)
  33. cell.valueLabel.addConstraints([widthConstraint])
  34. }
  35. }
  36. }