68 lines
2.0 KiB
Swift
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)
|
|
}
|
|
}
|
|
}
|