SnapKit/Sources/Constraint.swift

342 lines
13 KiB
Swift
Raw Permalink Normal View History

2014-07-25 12:24:17 +08:00
//
2015-04-15 19:07:50 +08:00
// SnapKit
2014-07-25 12:24:17 +08:00
//
2015-04-15 19:07:50 +08:00
// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit
2014-07-25 12:24:17 +08:00
//
2014-07-29 08:39:59 +08:00
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
2014-07-25 12:24:17 +08:00
#if os(iOS) || os(tvOS)
2016-01-26 18:49:04 +08:00
import UIKit
#else
2016-01-26 18:49:04 +08:00
import AppKit
#endif
2014-07-25 12:24:17 +08:00
public final class Constraint {
2016-01-26 18:49:04 +08:00
internal let sourceLocation: (String, UInt)
internal let label: String?
2016-01-26 18:49:04 +08:00
private let from: ConstraintItem
private let to: ConstraintItem
private let relation: ConstraintRelation
private let multiplier: ConstraintMultiplierTarget
private var constant: ConstraintConstantTarget {
didSet {
self.updateConstantAndPriorityIfNeeded()
}
}
private var priority: ConstraintPriorityTarget {
didSet {
self.updateConstantAndPriorityIfNeeded()
}
}
public var layoutConstraints: [LayoutConstraint]
2017-02-11 17:36:06 +08:00
public var isActive: Bool {
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
set {
if newValue {
activate()
}
else {
deactivate()
}
}
get {
for layoutConstraint in self.layoutConstraints {
if layoutConstraint.isActive {
return true
}
2017-02-11 17:36:06 +08:00
}
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
return false
2017-02-11 17:36:06 +08:00
}
}
2016-01-26 18:49:04 +08:00
// MARK: Initialization
2016-01-26 18:49:04 +08:00
internal init(from: ConstraintItem,
to: ConstraintItem,
relation: ConstraintRelation,
sourceLocation: (String, UInt),
label: String?,
2016-01-26 18:49:04 +08:00
multiplier: ConstraintMultiplierTarget,
constant: ConstraintConstantTarget,
priority: ConstraintPriorityTarget) {
self.from = from
self.to = to
self.relation = relation
self.sourceLocation = sourceLocation
self.label = label
2016-01-26 18:49:04 +08:00
self.multiplier = multiplier
self.constant = constant
self.priority = priority
self.layoutConstraints = []
// get attributes
let layoutFromAttributes = self.from.attributes.layoutAttributes
let layoutToAttributes = self.to.attributes.layoutAttributes
// get layout from
let layoutFrom = self.from.layoutConstraintItem!
// get relation
let layoutRelation = self.relation.layoutRelation
for layoutFromAttribute in layoutFromAttributes {
// get layout to attribute
let layoutToAttribute: LayoutAttribute
2016-09-01 21:39:08 +08:00
#if os(iOS) || os(tvOS)
if layoutToAttributes.count > 0 {
2016-09-01 21:39:08 +08:00
if self.from.attributes == .edges && self.to.attributes == .margins {
switch layoutFromAttribute {
case .left:
layoutToAttribute = .leftMargin
case .right:
layoutToAttribute = .rightMargin
case .top:
layoutToAttribute = .topMargin
case .bottom:
layoutToAttribute = .bottomMargin
default:
fatalError()
}
} else if self.from.attributes == .margins && self.to.attributes == .edges {
switch layoutFromAttribute {
case .leftMargin:
layoutToAttribute = .left
case .rightMargin:
layoutToAttribute = .right
case .topMargin:
layoutToAttribute = .top
case .bottomMargin:
layoutToAttribute = .bottom
default:
fatalError()
}
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
} else if self.from.attributes == .directionalEdges && self.to.attributes == .directionalMargins {
switch layoutFromAttribute {
case .leading:
layoutToAttribute = .leadingMargin
case .trailing:
layoutToAttribute = .trailingMargin
case .top:
layoutToAttribute = .topMargin
case .bottom:
layoutToAttribute = .bottomMargin
default:
fatalError()
}
} else if self.from.attributes == .directionalMargins && self.to.attributes == .directionalEdges {
switch layoutFromAttribute {
case .leadingMargin:
layoutToAttribute = .leading
case .trailingMargin:
layoutToAttribute = .trailing
case .topMargin:
layoutToAttribute = .top
case .bottomMargin:
layoutToAttribute = .bottom
default:
fatalError()
}
} else if self.from.attributes == self.to.attributes {
layoutToAttribute = layoutFromAttribute
2016-09-01 21:39:08 +08:00
} else {
layoutToAttribute = layoutToAttributes[0]
}
} else {
if self.to.target == nil && (layoutFromAttribute == .centerX || layoutFromAttribute == .centerY) {
layoutToAttribute = layoutFromAttribute == .centerX ? .left : .top
} else {
layoutToAttribute = layoutFromAttribute
}
2016-09-01 21:39:08 +08:00
}
#else
2016-09-20 12:57:16 +08:00
if self.from.attributes == self.to.attributes {
layoutToAttribute = layoutFromAttribute
} else if layoutToAttributes.count > 0 {
layoutToAttribute = layoutToAttributes[0]
2016-09-01 21:39:08 +08:00
} else {
layoutToAttribute = layoutFromAttribute
}
2016-09-01 21:39:08 +08:00
#endif
// get layout constant
let layoutConstant: CGFloat = self.constant.constraintConstantTargetValueFor(layoutAttribute: layoutToAttribute)
// get layout to
var layoutTo: AnyObject? = self.to.target
// use superview if possible
if layoutTo == nil && layoutToAttribute != .width && layoutToAttribute != .height {
layoutTo = layoutFrom.superview
}
// create layout constraint
let layoutConstraint = LayoutConstraint(
item: layoutFrom,
attribute: layoutFromAttribute,
relatedBy: layoutRelation,
toItem: layoutTo,
attribute: layoutToAttribute,
multiplier: self.multiplier.constraintMultiplierTargetValue,
constant: layoutConstant
)
// set label
layoutConstraint.label = self.label
// set priority
layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)
// set constraint
layoutConstraint.constraint = self
// append
self.layoutConstraints.append(layoutConstraint)
}
2016-01-26 18:49:04 +08:00
}
2016-01-26 18:49:04 +08:00
// MARK: Public
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, renamed:"activate()")
2016-09-14 16:59:59 +08:00
public func install() {
self.activate()
}
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, renamed:"deactivate()")
2016-09-14 16:59:59 +08:00
public func uninstall() {
self.deactivate()
}
2016-01-26 18:49:04 +08:00
public func activate() {
self.activateIfNeeded()
2015-04-12 18:21:02 +08:00
}
2016-01-26 18:49:04 +08:00
public func deactivate() {
self.deactivateIfNeeded()
}
@discardableResult
public func update(offset: ConstraintOffsetTarget) -> Constraint {
self.constant = offset.constraintOffsetTargetValue
return self
}
@discardableResult
public func update(inset: ConstraintInsetTarget) -> Constraint {
self.constant = inset.constraintInsetTargetValue
return self
}
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
#if os(iOS) || os(tvOS)
@discardableResult
@available(iOS 11.0, tvOS 11.0, *)
public func update(inset: ConstraintDirectionalInsetTarget) -> Constraint {
self.constant = inset.constraintDirectionalInsetTargetValue
return self
}
#endif
@discardableResult
public func update(priority: ConstraintPriorityTarget) -> Constraint {
self.priority = priority.constraintPriorityTargetValue
return self
}
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@discardableResult
public func update(priority: ConstraintPriority) -> Constraint {
self.priority = priority.value
return self
}
@available(*, deprecated, renamed:"update(offset:)")
public func updateOffset(amount: ConstraintOffsetTarget) -> Void { self.update(offset: amount) }
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, renamed:"update(inset:)")
public func updateInsets(amount: ConstraintInsetTarget) -> Void { self.update(inset: amount) }
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, renamed:"update(priority:)")
public func updatePriority(amount: ConstraintPriorityTarget) -> Void { self.update(priority: amount) }
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
public func updatePriorityRequired() -> Void {}
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
public func updatePriorityHigh() -> Void { fatalError("Must be implemented by Concrete subclass.") }
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
public func updatePriorityMedium() -> Void { fatalError("Must be implemented by Concrete subclass.") }
Feature/release 5.6 (#746) * Add support for UILayoutPriority as priority target. (#466) * Add support for UILayoutPriority as priority target. * Fixed for tvOS * Add update(priority: ConstraintPriority) method (#467) * Add update(priority: ConstraintPriority) method * Fix copy-paste error * Add Swift Package Manager support (#501) * Swift4.2 (#516) * make ConstraintAttributes conform to ExpressibleByIntegerLiteral (#520) * Adds 'constraint.isActive = bool' to Constraint (#496) * delegate identical 'constraint creation' code to 'prepareConstraints' * adds 'set(isActivated:)' method to call appropriate 'activate/deactivate' based on bool cleans up about 30 lines of if foo { activate } else { deactivate } code in my app * instead of 'set(isActivated:)', use 'isActive = value' * Add swift version to podspec * Update podspec * Update podspec * Update project to get rid of Migration Warning (#547) * Update Swift Language version to 4.2 under build settings (#551) * Update swift language version to 4.2 in build settings * Update podspec * Remove Swift Version file * Remove Package.swift, SnapKit is not SwiftPM compatible anyways * Update Podspec * Update version in Podspec * Support swift 5.0 (#570) * Update swift version 5.0 * Remove needless access control * Fix misused "Available" annotations * Support @unknown default * Support swift 5.0 in test code * Update podspec * Update travis CI * Code review by @freak4pc * Add constraint for Swift version * Fix build failed * [EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574) * @sashabelonogov Update LayoutConstraint == operator to support iOS 10 and higher changes * Simplify return statement of the LayoutConstraint == operator * Fix incorrect behavior of inset with center and baseline anchors (#569) * Fix insets adjusting center attributes incorrectly * Fix insets adjusting baseline attributes incorrectly * Add back Package.swift for SwiftPM compatibility (#559) reverts 477fffae4c37386285f78511ff4120f1f5324ff8 * Update podspec * Update min target versions * Update min target versions * Update README.md * Update README.md * Revert "[EXC_BAD_ACCESS] Update LayoutConstraint == operator to support iOS 10 and higher changes (#574)" (#593) This reverts commit bc2b0b93320513eb747b3baf6332c05bacc067b4. * Update Podspec * Bump min version requirements * Fix layout constraint comparison * Fix equality check for iOS * Adds support for NSDirectionalEdgeInsets as an inset constant (#594) * Make ConstraintViewDSL content priorities nonmutating (#586) * Adds two new compositions – DirectionalEdges and DirectionalMargins (#595) * WIP * Add directional margins * Whitespace * Add Playground Sample (#608) * added updates to Package.swift so it can be imported with Xcode 11 (#615) * Revert #574 * Update Podspec * Add background color to quick start box in README.md (#619) * add-dimensional-edges: add ConstraintItems horizontalEdges, verticalEdges, directionalHorizontalEdges and directionalVerticalEdges as convenience items to express left+right, top+bottom or leading+trailing (#637) * Update deprecations to allow Xcode to auto-fixup. (#634) * Migrate to Xcode 11 and updated travis.yml (#629) * Migrate to Xcode 11 and updated travis.yml * Travis to support Xcode 11 * project.pbxproj: Update to recommended settings. (#627) * Add test assert to unit test testCanSetLabel. (#625) * Add back support for OS X 10.11 (#645) * Use << for ConstraintAttributes options (#659) * Use << for ConstraintAttributes options * iPhone 6s is not supported by the latest Xcode * Add method getting constraint with closure to ConstraintMakerRelatable (#663) * add ConstraintMakerRelatable extension * fix fatalError message Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> * Xcode 12 and SwiftPM enhancements * Update README to include SPM installation notes (#673) * Fix typo * Remove duplicate file * xcodeproject configuration enhancement for localization (#584) Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> * Updates to project files * Dynamic Product (#710) This PR adds a dynamic product to SnapKit. Having a dynamic product is important in modular project structures; multiple packages may be using SnapKit, and this allows that support without the end-user have to wrap SnapKit in their own package that exposes it and using that package in lieu of SnapKit. * Fix warning about `class` (#714) * Added Example-iOS.xcdodeproj and fixed examples (#707) * Update README.md, add missing Migration Guides section (#721) * Make ConstraintMaker.item public (#693) * Typo source directory in Podspec (#738) Source directory has been renamed in 18608ead653bfe1e05e3d1f6fb6d34f62cec49bd * Release 5.6 * Update urls in readme * Update podspec version Co-authored-by: Benjamin Chrobot <benjamin.blair.chrobot@gmail.com> Co-authored-by: Linus Unnebäck <linus@folkdatorn.se> Co-authored-by: Mauro Vime Castillo <mvimeapps@gmail.com> Co-authored-by: o( ̄へ ̄)o <guzhenhuaGitHub@users.noreply.github.com> Co-authored-by: Colin T.A. Gray <colinta@gmail.com> Co-authored-by: Shai Mishali <freak4pc@gmail.com> Co-authored-by: Ibrahim Koteish <ikteish@yahoo.com> Co-authored-by: Jungwon An <kawoou@kawoou.kr> Co-authored-by: Alexander Belonogov <sashabelonogov@gmail.com> Co-authored-by: Christian Schnorr <christian.schnorr@me.com> Co-authored-by: Josh Converse <josh.converse@gmail.com> Co-authored-by: Vitalii Budnik <nekrich@users.noreply.github.com> Co-authored-by: Shiva Huang <shiva.tw@gmail.com> Co-authored-by: Max Cobb <5754073+maxxfrazer@users.noreply.github.com> Co-authored-by: Liam Elmore <32336260+iosmo@users.noreply.github.com> Co-authored-by: Sven Driemecker <sven.dr@gmx.de> Co-authored-by: Alex Simpson <alexandersimpson94@gmail.com> Co-authored-by: pushp1989 <54930194+pushp1989@users.noreply.github.com> Co-authored-by: Ben Yohay <ben@lightricks.com> Co-authored-by: Natascha Fadeeva <nataschafadeeva@aol.de> Co-authored-by: Wang, Chi <patr0nus@users.noreply.github.com> Co-authored-by: Roman Podymov <podymfrombryansk@yandex.ru> Co-authored-by: wotjd <wotjd971102@gmail.com> Co-authored-by: Jimi <jimi-hpcnt@hpcnt.com> Co-authored-by: Samuel Eshun <samueleshun15@gmail.com> Co-authored-by: Amr Elghadban <amr.elghadban@gmail.com> Co-authored-by: AmrAngry <c_amr.elghadban@smartdubai.ae> Co-authored-by: Hesham Salman <iron-ham@github.com> Co-authored-by: Mr. Ming <minglq.9@gmail.com> Co-authored-by: Teameh <tiemevanveen@hotmail.com> Co-authored-by: Josip Rezić <josip.rezic@hotmail.com> Co-authored-by: Rhett Tuan <devindwan@gmail.com> Co-authored-by: Damien Debin <ddebin@users.noreply.github.com> Co-authored-by: Robert Payne <robertjpayne@Roberts-MacBook-Pro.local>
2022-04-13 12:06:06 +08:00
@available(*, deprecated, message:"Use update(priority: ConstraintPriorityTarget) instead.")
public func updatePriorityLow() -> Void { fatalError("Must be implemented by Concrete subclass.") }
2016-01-26 18:49:04 +08:00
// MARK: Internal
internal func updateConstantAndPriorityIfNeeded() {
for layoutConstraint in self.layoutConstraints {
let attribute = (layoutConstraint.secondAttribute == .notAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute
layoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: attribute)
2017-02-11 17:49:00 +08:00
let requiredPriority = ConstraintPriority.required.value
2017-06-12 18:12:07 +08:00
if (layoutConstraint.priority.rawValue < requiredPriority), (self.priority.constraintPriorityTargetValue != requiredPriority) {
layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue)
}
}
}
internal func activateIfNeeded(updatingExisting: Bool = false) {
guard let item = self.from.layoutConstraintItem else {
print("WARNING: SnapKit failed to get from item from constraint. Activate will be a no-op.")
2016-09-20 12:53:32 +08:00
return
}
let layoutConstraints = self.layoutConstraints
if updatingExisting {
var existingLayoutConstraints: [LayoutConstraint] = []
for constraint in item.constraints {
existingLayoutConstraints += constraint.layoutConstraints
}
for layoutConstraint in layoutConstraints {
2016-11-23 19:03:41 +08:00
let existingLayoutConstraint = existingLayoutConstraints.first { $0 == layoutConstraint }
guard let updateLayoutConstraint = existingLayoutConstraint else {
fatalError("Updated constraint could not find existing matching constraint to update: \(layoutConstraint)")
2015-04-12 18:21:02 +08:00
}
let updateLayoutAttribute = (updateLayoutConstraint.secondAttribute == .notAnAttribute) ? updateLayoutConstraint.firstAttribute : updateLayoutConstraint.secondAttribute
updateLayoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: updateLayoutAttribute)
2015-04-12 18:21:02 +08:00
}
} else {
NSLayoutConstraint.activate(layoutConstraints)
item.add(constraints: [self])
2015-04-12 18:21:02 +08:00
}
2016-01-26 18:49:04 +08:00
}
2016-01-26 18:49:04 +08:00
internal func deactivateIfNeeded() {
guard let item = self.from.layoutConstraintItem else {
print("WARNING: SnapKit failed to get from item from constraint. Deactivate will be a no-op.")
2016-09-20 12:53:32 +08:00
return
}
let layoutConstraints = self.layoutConstraints
2016-06-15 09:49:49 +08:00
NSLayoutConstraint.deactivate(layoutConstraints)
item.remove(constraints: [self])
2016-01-26 18:49:04 +08:00
}
}