AutoCat2/AutoCat2/Components/ACTabBar/ACTabBarController.swift
2022-03-25 19:51:57 +03:00

68 lines
2.0 KiB
Swift

//
// ACTabBarController.swift
// AutoCat2
//
// Created by Selim Mustafaev on 20.03.2022.
//
import UIKit
class ACTabBarController: UIViewController {
// MARK: - Properties
var viewControllers: [UIViewController] = [] {
didSet {
setupControllers()
}
}
// MARK: - Views
private lazy var buttonsStackView: UIStackView = {
let stack = UIStackView()
stack.translatesAutoresizingMaskIntoConstraints = false
stack.axis = .horizontal
stack.spacing = 0
stack.distribution = .fillEqually
return stack
}()
private let tabBarView: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
// tabBarView.backgroundColor = .green
// buttonsStackView.backgroundColor = .magenta
view.addSubview(tabBarView)
tabBarView.addSubview(buttonsStackView)
NSLayoutConstraint.activate([
tabBarView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
tabBarView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
tabBarView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
buttonsStackView.leadingAnchor.constraint(equalTo: tabBarView.leadingAnchor),
buttonsStackView.trailingAnchor.constraint(equalTo: tabBarView.trailingAnchor),
buttonsStackView.topAnchor.constraint(equalTo: tabBarView.topAnchor),
buttonsStackView.bottomAnchor.constraint(equalTo: tabBarView.safeAreaLayoutGuide.bottomAnchor)
])
}
func setupControllers() {
buttonsStackView.removeAllArrangedSubviews()
for controller in viewControllers {
let button = ACTabBarButton(tabBarItem: controller.tabBarItem)
buttonsStackView.addArrangedSubview(button)
}
}
}