AutoCat/AutoCat/ACUIKit/Extensions/UISegmentedControl.swift

43 lines
1.1 KiB
Swift

//
// UISegmentedControl.swift
// AutoCat
//
// Created by Selim Mustafaev on 06.06.2023.
// Copyright © 2023 Selim Mustafaev. All rights reserved.
//
import UIKit
extension UISegmentedControl {
static func segments(titles: [String]) -> UISegmentedControl {
let view = UISegmentedControl(items: titles)
view.translatesAutoresizingMaskIntoConstraints = false
return view
}
static func segments(images: [UIImage?]) -> UISegmentedControl {
let view = UISegmentedControl(items: images.compactMap { $0 })
view.translatesAutoresizingMaskIntoConstraints = false
return view
}
func onValueChanged(_ closure: @escaping (Int) -> Void) -> UISegmentedControl {
addActionImpl(for: .valueChanged) { [weak self] in
guard let index = self?.selectedSegmentIndex else {
return
}
closure(index)
}
return self
}
func select(index: Int) -> UISegmentedControl {
selectedSegmentIndex = index
return self
}
}