updated baseViewController, fixed issues with container controls for the examples

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2022-11-17 14:29:57 -06:00
parent 832890abf7
commit 349ddf6cce

View File

@ -16,13 +16,11 @@ public class BaseViewController: UIViewController, Initable {
}
private let edgeSpacing = 16.0
private let topBottomSpacing = 20.0
//--------------------------------------------------
// MARK: - Combine Properties
//--------------------------------------------------
public var subscribers = Set<AnyCancellable>()
public var firstRender: Bool = false
//--------------------------------------------------
// MARK: - Properties
@ -83,7 +81,7 @@ public class BaseViewController: UIViewController, Initable {
return UIStackView().with {
$0.translatesAutoresizingMaskIntoConstraints = false
$0.alignment = .fill
$0.distribution = .fillProportionally
$0.distribution = .fill
$0.axis = .vertical
$0.spacing = 10
}
@ -108,28 +106,35 @@ public class BaseViewController: UIViewController, Initable {
embed(scrollViewController)
scrollViewController.scrollView.alwaysBounceVertical = true
scrollViewController.contentView = contentView
let spacerView = UIView().with{
$0.translatesAutoresizingMaskIntoConstraints = false
}
contentView.addSubview(contentTopView)
contentView.addSubview(contentBottomView)
contentView.addSubview(spacerView)
contentBottomView.addSubview(formStackView)
contentTopView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: edgeSpacing).isActive = true
contentTopView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: edgeSpacing).isActive = true
contentTopView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -edgeSpacing).isActive = true
contentBottomView.topAnchor.constraint(equalTo: contentTopView.bottomAnchor, constant: edgeSpacing).isActive = true
contentBottomView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: edgeSpacing).isActive = true
contentBottomView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -edgeSpacing).isActive = true
contentBottomView.bottomAnchor.constraint(lessThanOrEqualTo: contentView.bottomAnchor, constant: -edgeSpacing).isActive = true
formStackView.topAnchor.constraint(equalTo: contentBottomView.topAnchor, constant: edgeSpacing).isActive = true
formStackView.leadingAnchor.constraint(equalTo: contentBottomView.leadingAnchor, constant: edgeSpacing).isActive = true
formStackView.trailingAnchor.constraint(equalTo: contentBottomView.trailingAnchor, constant: -edgeSpacing).isActive = true
formStackView.bottomAnchor.constraint(equalTo: contentBottomView.bottomAnchor, constant: -100).isActive = true
contentTopView.pinTop(edgeSpacing)
contentTopView.pinLeading(edgeSpacing)
contentTopView.pinTrailing(edgeSpacing)
contentBottomView.pinTop(contentTopView.bottomAnchor, edgeSpacing)
contentBottomView.pinLeading(edgeSpacing)
contentBottomView.pinTrailing(edgeSpacing)
spacerView
.pinTop(contentBottomView.bottomAnchor, 100)
.pinLeading()
.pinTrailing()
.pinBottom()
formStackView.pinToSuperView()
view.addSubview(picker)
picker.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
picker.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor).isActive = true
picker.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true
picker.pinBottom()
picker.pinLeading()
picker.pinTrailing()
picker.isHidden = true
}
@ -144,20 +149,14 @@ public class BaseViewController: UIViewController, Initable {
addChild(viewController)
view.addSubview(viewController.view)
viewController.view.translatesAutoresizingMaskIntoConstraints = false
viewController.view.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
viewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
viewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
viewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
viewController.view.pinToSuperView()
viewController.didMove(toParent: self)
}
open func addContentTopView(view: UIView) {
view.translatesAutoresizingMaskIntoConstraints = false
contentTopView.addSubview(view)
view.leadingAnchor.constraint(equalTo: contentTopView.leadingAnchor, constant: edgeSpacing).isActive = true
view.topAnchor.constraint(equalTo: contentTopView.topAnchor, constant: topBottomSpacing).isActive = true
view.trailingAnchor.constraint(lessThanOrEqualTo: contentTopView.trailingAnchor, constant: -edgeSpacing).isActive = true
view.bottomAnchor.constraint(lessThanOrEqualTo: contentTopView.bottomAnchor, constant: -topBottomSpacing).isActive = true
view.pinToSuperView(.init(top: edgeSpacing, left: edgeSpacing, bottom: edgeSpacing, right: edgeSpacing))
}
open func addFormRow(label: String, view: UIView, stackView: UIStackView? = nil) {