43 lines
1.1 KiB
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
|
|
}
|
|
}
|
|
|