Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. class EnumSegmentControl<T: RawRepresentable> : UISegmentedControl where T.RawValue == String {
  2.  
  3. var cases = [T]()
  4. var selectedCase: ((_ case: T) -> Void)?
  5.  
  6. private func setupView() {
  7. addTarget(self, action: #selector(selectedChanged), for: .valueChanged)
  8. }
  9.  
  10. @objc private func selectedChanged() {
  11. selectedCase?(cases[selectedSegmentIndex])
  12. }
  13.  
  14. required init(cases: [T]) {
  15. super.init(items: cases.compactMap({ $0.rawValue}))
  16. self.cases = cases
  17. setupView()
  18. }
  19.  
  20. override init(frame: CGRect) {
  21. super.init(frame: frame)
  22. }
  23.  
  24. required init?(coder aDecoder: NSCoder) {
  25. fatalError()
  26. }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement