Files
lockdown-iOS-mirror/LockdowniOS/BottomMenu.swift
2023-06-08 20:50:53 +03:00

87 lines
2.4 KiB
Swift

//
// BottomMenu.swift
// LockdownSandbox
//
// Created by Aliaksandr Dvoineu on 26.04.23.
//
import UIKit
final class BottomMenu: UIView {
private(set) var buttonCallback: () -> () = { }
override init(frame: CGRect) {
super.init(frame: frame)
configure()
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
super.layoutSubviews()
layer.cornerRadius = 8
}
@discardableResult
func onButtonPressed(_ callback: @escaping () -> ()) -> Self {
buttonCallback = callback
return self
}
lazy var leftButton: UIButton = {
let button = UIButton(type: .system)
button.tintColor = .tunnelsBlue
button.setTitle(NSLocalizedString("Select All", comment: ""), for: .normal)
button.titleLabel?.font = fontMedium15
return button
}()
lazy var middleButton: UIButton = {
let button = UIButton(type: .system)
button.tintColor = .tunnelsBlue
button.titleLabel?.font = fontMedium15
button.setTitle(NSLocalizedString("Move to List", comment: ""), for: .normal)
return button
}()
lazy var rightButton: UIButton = {
let button = UIButton(type: .system)
button.tintColor = .red
button.titleLabel?.font = fontMedium15
button.setTitle(NSLocalizedString("Delete", comment: ""), for: .normal)
return button
}()
private lazy var backgroundView: UIView = {
let view = UIView()
view.backgroundColor = .secondarySystemBackground
return view
}()
lazy var stackView: UIStackView = {
let stackView = UIStackView()
stackView.addArrangedSubview(leftButton)
stackView.addArrangedSubview(middleButton)
stackView.addArrangedSubview(rightButton)
stackView.axis = .horizontal
stackView.distribution = .fillEqually
stackView.alignment = .leading
return stackView
}()
private func configure() {
addSubview(backgroundView)
backgroundView.anchors.height.equal(60)
backgroundView.anchors.leading.pin()
backgroundView.anchors.trailing.pin()
backgroundView.anchors.bottom.pin()
addSubview(stackView)
stackView.anchors.edges.pin()
}
}