slowly refactored out old code

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2023-06-15 10:27:18 -05:00
parent d11176f90d
commit 200203ade7

View File

@ -10,65 +10,6 @@ import VDS
import UIKit import UIKit
extension UIView { extension UIView {
public class ViewConstraints {
public var topConstraint: NSLayoutConstraint?
public var leadingConstraint: NSLayoutConstraint?
public var trailingConstraint: NSLayoutConstraint?
public var bottomConstraint: NSLayoutConstraint?
public weak var view: UIView?
public var allConstraints: [NSLayoutConstraint] {
[topConstraint, leadingConstraint, trailingConstraint, bottomConstraint].compactMap{ $0 }
}
public var isActive: Bool = true {
didSet {
allConstraints.forEach { $0.isActive = isActive }
}
}
public init(view: UIView){
self.view = view
}
public func removeConstraint(edges: [UIRectEdge]) {
edges.forEach { edge in
switch edge {
case .all:
if let leadingConstraint {
view?.removeConstraint(leadingConstraint)
}
if let trailingConstraint {
view?.removeConstraint(trailingConstraint)
}
if let topConstraint {
view?.removeConstraint(topConstraint)
}
if let bottomConstraint {
view?.removeConstraint(bottomConstraint)
}
case .left:
if let leadingConstraint {
view?.removeConstraint(leadingConstraint)
}
case .right:
if let trailingConstraint {
view?.removeConstraint(trailingConstraint)
}
case .top:
if let topConstraint {
view?.removeConstraint(topConstraint)
}
case .bottom:
if let bottomConstraint {
view?.removeConstraint(bottomConstraint)
}
default:
break
}
}
}
}
public static func makeWrapper(for view: UIView, edgeSpacing: CGFloat = 0.0, isTrailing: Bool = true) -> UIView { public static func makeWrapper(for view: UIView, edgeSpacing: CGFloat = 0.0, isTrailing: Bool = true) -> UIView {
return makeWrappedView(for: view, edgeSpacing: edgeSpacing, isTrailing: isTrailing).view return makeWrappedView(for: view, edgeSpacing: edgeSpacing, isTrailing: isTrailing).view
@ -76,20 +17,18 @@ extension UIView {
public class WrappedViewHelper { public class WrappedViewHelper {
public var view: UIView public var view: UIView
public var constraints: ViewConstraints
var viewPadding: CGFloat = 0 { var viewPadding: CGFloat = 0 {
didSet { didSet {
constraints.topConstraint?.constant = viewPadding view._topConstraint?.constant = viewPadding
constraints.leadingConstraint?.constant = viewPadding view._leadingConstraint?.constant = viewPadding
constraints.trailingConstraint?.constant = -viewPadding view._trailingConstraint?.constant = -viewPadding
constraints.bottomConstraint?.constant = -viewPadding view._bottomConstraint?.constant = -viewPadding
} }
} }
public init(view: UIView, constraints: ViewConstraints) { public init(view: UIView) {
self.view = view self.view = view
self.constraints = constraints
} }
} }
@ -98,26 +37,18 @@ extension UIView {
$0.translatesAutoresizingMaskIntoConstraints = false $0.translatesAutoresizingMaskIntoConstraints = false
} }
wrapper.addSubview(view) wrapper.addSubview(view)
let constraints = view.addConstraints(to: wrapper, edgeSpacing: edgeSpacing, isTrailing: isTrailing)
return WrappedViewHelper(view: wrapper, constraints: constraints) view.pinTop(wrapper.topAnchor, edgeSpacing)
} view.pinBottom(wrapper.bottomAnchor, edgeSpacing)
view.pinLeading(wrapper.leadingAnchor, edgeSpacing)
public func addConstraints(to view: UIView, edgeSpacing: CGFloat = 0.0, isTrailing: Bool = true) -> ViewConstraints {
let constraints = ViewConstraints(view: self)
constraints.topConstraint = topAnchor.constraint(equalTo: view.topAnchor)
constraints.bottomConstraint = bottomAnchor.constraint(equalTo: view.bottomAnchor)
if isTrailing { if isTrailing {
constraints.leadingConstraint = leadingAnchor.constraint(equalTo: view.leadingAnchor) view.pinTrailingLessThanOrEqualTo(wrapper.trailingAnchor, edgeSpacing)
constraints.trailingConstraint = trailingAnchor.constraint(lessThanOrEqualTo: view.trailingAnchor)
} else { } else {
constraints.leadingConstraint = leadingAnchor.constraint(equalTo: view.leadingAnchor) view.pinTrailing(wrapper.trailingAnchor, edgeSpacing)
constraints.trailingConstraint = trailingAnchor.constraint(equalTo: view.trailingAnchor)
} }
constraints.isActive = true return WrappedViewHelper(view: wrapper)
return constraints }
}
} }
extension ButtonBase { extension ButtonBase {