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