From 2a1db08ab77c77441d93434f8ad889fc29b7e074 Mon Sep 17 00:00:00 2001 From: Sumanth Nadigadda Date: Fri, 6 May 2022 15:51:53 +0530 Subject: [PATCH] setting button style and constraints. --- .../Atomic/Atoms/Buttons/PillButton.swift | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift b/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift index 84600397..10fb4b72 100644 --- a/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift +++ b/MVMCoreUI/Atomic/Atoms/Buttons/PillButton.swift @@ -34,8 +34,13 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { // MARK: - Constraints //-------------------------------------------------- - public var widthConstraint: NSLayoutConstraint? - public var minimumWidthConstraint: NSLayoutConstraint? + public var widthConstraint: NSLayoutConstraint { + return widthAnchor.constraint(equalToConstant: 0) + } + + public var minimumWidthConstraint: NSLayoutConstraint { + return widthAnchor.constraint(greaterThanOrEqualToConstant: buttonSize.minimumWidth()) + } //-------------------------------------------------- // MARK: - Initializers @@ -78,12 +83,14 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { public func stylePrimary() { buttonModel?.setPrimaryFacade() + style() } /// The secondary styling for a button. Should be used for secondary buttons public func styleSecondary() { buttonModel?.setSecondaryFacade() + style() } /// Styles the button based on the model style @@ -199,12 +206,13 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol { layer.cornerRadius = getInnerPadding() contentEdgeInsets = getContentEdgeInsets() - if let contraint = buttonModel?.width, (widthConstraint == nil || widthConstraint?.constant != contraint) { - widthConstraint = widthAnchor.constraint(equalToConstant: contraint) - widthConstraint?.isActive = true - } else if minimumWidthConstraint == nil { - minimumWidthConstraint = widthAnchor.constraint(greaterThanOrEqualToConstant: buttonSize.minimumWidth()) - minimumWidthConstraint?.isActive = true + if let contraint = buttonModel?.width, widthConstraint.constant != contraint { + widthConstraint.constant = contraint + widthConstraint.isActive = true + minimumWidthConstraint.isActive = false + } else if !minimumWidthConstraint.isActive { + minimumWidthConstraint.isActive = true + widthConstraint.isActive = false } }