diff --git a/Form/ButtonStyle.swift b/Form/ButtonStyle.swift index f05d6ff..30b22e5 100644 --- a/Form/ButtonStyle.swift +++ b/Form/ButtonStyle.swift @@ -147,14 +147,14 @@ private extension UIButton { } func updateMinimumSize(_ minimumSize: MinimumSize) { - updateConstraint(for: widthAnchor, with: minimumSize.width, constraintKey: &widthConstraintKey) - updateConstraint(for: heightAnchor, with: minimumSize.height, constraintKey: &heightConstraintKey) + updateConstraint(for: widthAnchor, with: minimumSize.width, priority: minimumSize.priority, constraintKey: &widthConstraintKey) + updateConstraint(for: heightAnchor, with: minimumSize.height, priority: minimumSize.priority, constraintKey: &heightConstraintKey) } - func updateConstraint(for anchor: NSLayoutDimension, with value: CGFloat?, constraintKey key: UnsafeRawPointer) { + func updateConstraint(for anchor: NSLayoutDimension, with value: CGFloat?, priority: UILayoutPriority, constraintKey key: UnsafeRawPointer) { let constant = value ?? 0 let constraint = associatedValue(forKey: key, initial: anchor >= constant) - constraint.priority = .defaultHigh + constraint.priority = priority constraint.constant = constant constraint.isActive = (value != nil) } diff --git a/Form/MinimumSize.swift b/Form/MinimumSize.swift index 4203bb4..c6ac553 100644 --- a/Form/MinimumSize.swift +++ b/Form/MinimumSize.swift @@ -10,10 +10,12 @@ import Foundation public struct MinimumSize: Style { public var width: CGFloat? public var height: CGFloat? + public var priority: UILayoutPriority - public init(width: CGFloat? = nil, height: CGFloat? = nil) { + public init(width: CGFloat? = nil, height: CGFloat? = nil, priority: UILayoutPriority = .defaultHigh) { self.width = width self.height = height + self.priority = priority } }