ParametersViewController.swift 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //
  2. // ParametersViewController.swift
  3. // ProgressRingExample
  4. //
  5. // Created by Max Konovalov on 22/10/2018.
  6. // Copyright © 2018 Max Konovalov. All rights reserved.
  7. //
  8. import MKRingProgressView
  9. import UIKit
  10. protocol ParametersViewControllerDelegate: class {
  11. func parametersViewControllerDidChangeProgress(_ progress: Double)
  12. func parametersViewControllerDidChangeStyle(_ style: RingProgressViewStyle)
  13. func parametersViewControllerDidChangeShadowOpacity(_ shadowOpacity: CGFloat)
  14. func parametersViewControllerDidChangeHidesRingForZeroProgressValue(_ hidesRingForZeroProgress: Bool)
  15. }
  16. class ParametersViewController: UITableViewController {
  17. weak var delegate: ParametersViewControllerDelegate?
  18. override func viewDidLoad() {
  19. super.viewDidLoad()
  20. tableView.tableFooterView = UIView()
  21. }
  22. @IBAction func progressChanged(_ sender: UISlider) {
  23. let progress = Double(sender.value)
  24. delegate?.parametersViewControllerDidChangeProgress(progress)
  25. }
  26. @IBAction func styleChanged(_ sender: UISegmentedControl) {
  27. guard let style = RingProgressViewStyle(rawValue: sender.selectedSegmentIndex) else {
  28. return
  29. }
  30. delegate?.parametersViewControllerDidChangeStyle(style)
  31. }
  32. @IBAction func shadowChanged(_ sender: UISwitch) {
  33. let shadowOpacity: CGFloat = sender.isOn ? 1.0 : 0.0
  34. delegate?.parametersViewControllerDidChangeShadowOpacity(shadowOpacity)
  35. }
  36. @IBAction func hidesRingForZeroProgressChanged(_ sender: UISwitch) {
  37. let hidesRingForZeroProgress = sender.isOn
  38. delegate?.parametersViewControllerDidChangeHidesRingForZeroProgressValue(hidesRingForZeroProgress)
  39. }
  40. }