Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class EnumSegmentControl<T: RawRepresentable> : UISegmentedControl where T.RawValue == String {
- var cases = [T]()
- var selectedCase: ((_ case: T) -> Void)?
- private func setupView() {
- addTarget(self, action: #selector(selectedChanged), for: .valueChanged)
- }
- @objc private func selectedChanged() {
- selectedCase?(cases[selectedSegmentIndex])
- }
- required init(cases: [T]) {
- super.init(items: cases.compactMap({ $0.rawValue}))
- self.cases = cases
- setupView()
- }
- override init(frame: CGRect) {
- super.init(frame: frame)
- }
- required init?(coder aDecoder: NSCoder) {
- fatalError()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement