mirror of
https://github.com/confirmedcode/Lockdown-iOS.git
synced 2025-12-21 12:14:02 +01:00
87 lines
2.4 KiB
Swift
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()
|
|
}
|
|
}
|