updated constraints

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-06-26 13:28:39 -05:00
parent 9c32ea4870
commit a432534e1a

View File

@ -179,10 +179,12 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
//--------------------------------------------------
internal var widthConstraint: NSLayoutConstraint?
internal var heightConstraint: NSLayoutConstraint?
internal var containerViewBottomConstraint: NSLayoutConstraint?
internal var containerViewCenterXConstraint: NSLayoutConstraint?
internal var containerViewLeadingConstraint: NSLayoutConstraint?
internal var containerViewLeadingGreaterThanOrEqualConstraint: NSLayoutConstraint?
internal var containerViewTrailingConstraint: NSLayoutConstraint?
internal var containerViewBottomLessThanOrEqualConstraint: NSLayoutConstraint?
internal var containerViewTrailingLessThanOrEqualConstraint: NSLayoutConstraint?
internal var contentViewTopConstraint: NSLayoutConstraint?
@ -233,14 +235,15 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
containerView
.pinTop()
.pinLeading()
.pinBottom()
containerViewCenterXConstraint = containerView.pinCenterX(anchor: centerXAnchor)?.deactivate()
containerViewLeadingConstraint = containerView.pinLeading(anchor: leadingAnchor)?.deactivate()
containerViewLeadingGreaterThanOrEqualConstraint = containerView.pinLeadingGreaterThanOrEqualTo(anchor: leadingAnchor)?.deactivate()
containerViewTrailingConstraint = containerView.pinTrailing(anchor: trailingAnchor)?.deactivate()
containerViewBottomConstraint = containerView.pinBottom(anchor: bottomAnchor)?.deactivate()
containerViewTrailingLessThanOrEqualConstraint = containerView.pinTrailingLessThanOrEqualTo(anchor: trailingAnchor)?.deactivate()
containerViewBottomLessThanOrEqualConstraint = containerView.pinBottomLessThanOrEqualTo(anchor: bottomAnchor)?.deactivate()
backgroundImageView.pinToSuperView()
widthConstraint = containerView.widthAnchor.constraint(equalToConstant: 0).deactivate()
@ -315,31 +318,40 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
//deactivate everything
widthConstraint?.deactivate()
heightConstraint?.deactivate()
containerViewCenterXConstraint?.deactivate()
containerViewLeadingGreaterThanOrEqualConstraint?.deactivate()
containerViewLeadingConstraint?.deactivate()
containerViewTrailingLessThanOrEqualConstraint?.deactivate()
containerViewTrailingLessThanOrEqualConstraint?.deactivate()
containerViewBottomConstraint?.deactivate()
containerViewTrailingConstraint?.deactivate()
print("Width: \(width?.description ?? "none")")
print("Height: \(height?.description ?? "none")")
//run logic to determine which to activate
if let width, aspectRatio == .none && height == nil{
widthConstraint?.constant = width
widthConstraint?.activate()
containerViewTrailingConstraint?.activate()
containerViewBottomConstraint?.activate()
containerViewCenterXConstraint?.activate()
containerViewLeadingGreaterThanOrEqualConstraint?.activate()
containerViewTrailingLessThanOrEqualConstraint?.activate()
} else if let height, aspectRatio == .none && width == nil{
heightConstraint?.constant = height
heightConstraint?.activate()
containerViewLeadingConstraint?.activate()
containerViewTrailingConstraint?.activate()
containerViewBottomConstraint?.activate()
} else if let height, let width {
widthConstraint?.constant = width
heightConstraint?.constant = height
heightConstraint?.activate()
widthConstraint?.activate()
containerViewCenterXConstraint?.activate()
containerViewLeadingGreaterThanOrEqualConstraint?.activate()
containerViewTrailingLessThanOrEqualConstraint?.activate()
containerViewBottomLessThanOrEqualConstraint?.activate()
} else if let width {
let size = ratioSize(for: width)
@ -347,22 +359,23 @@ open class TileContainerBase<PaddingType: DefaultValuing>: Control where Padding
heightConstraint?.constant = size.height
widthConstraint?.activate()
heightConstraint?.activate()
containerViewCenterXConstraint?.activate()
containerViewLeadingGreaterThanOrEqualConstraint?.activate()
containerViewTrailingLessThanOrEqualConstraint?.activate()
containerViewBottomLessThanOrEqualConstraint?.activate()
} else if let height {
let size = ratioSize(for: height)
//enforce exact height/width
widthConstraint?.constant = size.width
heightConstraint?.constant = size.height
widthConstraint?.activate()
heightConstraint?.activate()
containerViewCenterXConstraint?.activate()
containerViewLeadingGreaterThanOrEqualConstraint?.activate()
containerViewTrailingLessThanOrEqualConstraint?.activate()
containerViewBottomLessThanOrEqualConstraint?.activate()
} else {
//set to the parent view
containerViewBottomConstraint?.activate()
containerViewLeadingConstraint?.activate()
containerViewTrailingConstraint?.activate()
}