mirror of
https://github.com/confirmedcode/Lockdown-iOS.git
synced 2025-12-21 12:14:02 +01:00
89 lines
2.6 KiB
Swift
89 lines
2.6 KiB
Swift
//
|
|
// ConfiguredNavigationView.swift
|
|
// Lockdown
|
|
//
|
|
// Created by Aliaksandr Dvoineu on 1.04.23.
|
|
// Copyright © 2023 Confirmed Inc. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
final class ConfiguredNavigationView: UIView {
|
|
|
|
private(set) var buttonCallback: () -> () = { }
|
|
var accentColor = UIColor.white
|
|
|
|
lazy var titleLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.textColor = .label
|
|
label.font = fontBold17
|
|
label.textColor = UIColor.white
|
|
label.textAlignment = .center
|
|
return label
|
|
}()
|
|
|
|
lazy var leftNavButton: UIButton = {
|
|
let button = UIButton(type: .system)
|
|
button.titleLabel?.font = fontBold13
|
|
button.tintColor = UIColor.white
|
|
button.addTarget(self, action: #selector(buttonDidPress), for: .touchUpInside)
|
|
return button
|
|
}()
|
|
|
|
lazy var rightNavButton: UIButton = {
|
|
let button = UIButton(type: .system)
|
|
button.titleLabel?.font = fontBold13
|
|
button.tintColor = UIColor.white
|
|
button.addTarget(self, action: #selector(buttonDidPress), for: .touchUpInside)
|
|
return button
|
|
}()
|
|
|
|
init(accentColor: UIColor = .tunnelsBlue) {
|
|
super.init(frame: .zero)
|
|
self.accentColor = accentColor
|
|
configureUI()
|
|
}
|
|
|
|
var titleView: UIView? {
|
|
didSet {
|
|
oldValue?.removeFromSuperview()
|
|
guard let titleView else {
|
|
titleLabel.isHidden = false
|
|
return
|
|
}
|
|
titleLabel.isHidden = true
|
|
|
|
addSubview(titleView)
|
|
titleView.anchors.leading.marginsPin(inset: 67)
|
|
titleView.anchors.trailing.marginsPin(inset: 67)
|
|
titleView.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true
|
|
}
|
|
}
|
|
|
|
@available(*, unavailable)
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
func configureUI() {
|
|
addSubview(titleLabel)
|
|
titleLabel.anchors.leading.marginsPin(inset: 20)
|
|
titleLabel.anchors.trailing.marginsPin(inset: 20)
|
|
titleLabel.anchors.top.pin(inset: 18)
|
|
|
|
addSubview(leftNavButton)
|
|
leftNavButton.anchors.centerY.equal(titleLabel.anchors.centerY)
|
|
leftNavButton.anchors.leading.marginsPin(inset: 8)
|
|
leftNavButton.anchors.bottom.marginsPin()
|
|
|
|
addSubview(rightNavButton)
|
|
rightNavButton.anchors.centerY.equal(titleLabel.anchors.centerY)
|
|
rightNavButton.anchors.trailing.marginsPin(inset: 8)
|
|
rightNavButton.anchors.bottom.marginsPin()
|
|
}
|
|
|
|
@objc func buttonDidPress() {
|
|
buttonCallback()
|
|
}
|
|
}
|