From adb337f8650a3af954112851d9bdb4b011573854 Mon Sep 17 00:00:00 2001 From: Sumanth Nadigadda Date: Sat, 7 May 2022 23:46:56 +0530 Subject: [PATCH] Updating button constraints --- .../Atomic/Atoms/Buttons/PillButton.swift | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift b/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift index ab46e476..39bb8b24 100644 --- a/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift +++ b/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift @@ -34,13 +34,8 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { // MARK: - Constraints //-------------------------------------------------- - public var widthConstraint: NSLayoutConstraint { - return widthAnchor.constraint(equalToConstant: 0) - } - - public var minimumWidthConstraint: NSLayoutConstraint { - return widthAnchor.constraint(greaterThanOrEqualToConstant: buttonSize.minimumWidth()) - } + public var widthConstraint: NSLayoutConstraint? + public var minimumWidthConstraint: NSLayoutConstraint? //-------------------------------------------------- // MARK: - Initializers @@ -206,14 +201,24 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { layer.cornerRadius = getInnerPadding() contentEdgeInsets = getContentEdgeInsets() - if let contraint = buttonModel?.width, widthConstraint.constant != contraint { - widthConstraint.constant = contraint - widthConstraint.isActive = true - minimumWidthConstraint.isActive = false - } else if !minimumWidthConstraint.isActive { - minimumWidthConstraint.constant = buttonSize.minimumWidth() - minimumWidthConstraint.isActive = true - widthConstraint.isActive = false + if let contraint = buttonModel?.width { + + if widthConstraint == nil { + widthConstraint = widthAnchor.constraint(equalToConstant: contraint) + } else if widthConstraint?.constant != contraint { + widthConstraint?.constant = contraint + } + widthConstraint?.isActive = true + minimumWidthConstraint?.isActive = false + } else { + + if minimumWidthConstraint == nil { + minimumWidthConstraint = widthAnchor.constraint(greaterThanOrEqualToConstant: buttonSize.minimumWidth()) + } else { + minimumWidthConstraint?.constant = buttonSize.minimumWidth() + } + minimumWidthConstraint?.isActive = true + widthConstraint?.isActive = false } }