diff --git a/VDSSample/ViewControllers/BaseViewController.swift b/VDSSample/ViewControllers/BaseViewController.swift index 23ee3b6..ea04a4e 100644 --- a/VDSSample/ViewControllers/BaseViewController.swift +++ b/VDSSample/ViewControllers/BaseViewController.swift @@ -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() - 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) {