From 35859f64d2413fe4a0099d72fef0b047f7e1eb35 Mon Sep 17 00:00:00 2001 From: Nataliya Patsovska Date: Tue, 23 Apr 2019 19:54:26 +0200 Subject: [PATCH] Add priority to MinimumSize and use it in ButtonStyle --- Form/ButtonStyle.swift | 8 ++++---- Form/MinimumSize.swift | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) 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 } }