diff --git a/Documentation/Doc.playground/Pages/FormationLayout.xcplaygroundpage/Contents.swift b/Documentation/Doc.playground/Pages/FormationLayout.xcplaygroundpage/Contents.swift
index d537320..4bd1c26 100644
--- a/Documentation/Doc.playground/Pages/FormationLayout.xcplaygroundpage/Contents.swift
+++ b/Documentation/Doc.playground/Pages/FormationLayout.xcplaygroundpage/Contents.swift
@@ -10,7 +10,7 @@ import FormationLayout
`FormationLayout` is the top level layout class for one root view.
- `FormationLayout` takes a `UIView` as its `rootView`.
- - `translatesAutoresizingMaskIntoConstraints` of `rootView` is set to false by default but can also be true if set in constructor.
+ - `translatesAutoresizingMaskIntoConstraints` of `rootView` is not set to false by default but can be set in constructor.
- `translatesAutoresizingMaskIntoConstraints` of subviews will be set to false automaticly.
- Subviews with no `superView` will be added to `rootView` automaticly.
*/
diff --git a/Documentation/Doc.playground/Pages/Helpers.xcplaygroundpage/Contents.swift b/Documentation/Doc.playground/Pages/Helpers.xcplaygroundpage/Contents.swift
index e96d51b..a5b69eb 100644
--- a/Documentation/Doc.playground/Pages/Helpers.xcplaygroundpage/Contents.swift
+++ b/Documentation/Doc.playground/Pages/Helpers.xcplaygroundpage/Contents.swift
@@ -7,15 +7,17 @@ import FormationLayout
## Helpers
----
+ - aspectRatio: `width:height`
- size: width & height
- center: centerX & centerY
*/
-demo { canvas, icon1, icon2 in
+demo { canvas, icon1, icon2, icon3 in
let layout = FormationLayout(rootView: canvas)
- layout[icon1].size(equalTo: 30).center(equalTo: canvas, multiplyBy: 0.8)
- layout[icon2].size(equalTo: icon1, minus: 10).center(equalTo: icon1, plus: 30)
+ layout[icon1].aspectRatio(equalTo: 1.5).width(equalTo: 30)
+ layout[icon2].size(equalTo: 30).center(equalTo: canvas, multiplyBy: 0.8)
+ layout[icon3].size(equalTo: icon2, minus: 10).center(equalTo: icon2, plus: 30)
}
//: [Home](Home) | [Previous](@previous) | [Next](@next)
diff --git a/Documentation/Doc.xcworkspace/contents.xcworkspacedata b/Documentation/Doc.xcworkspace/contents.xcworkspacedata
index 77328c6..98859ab 100644
--- a/Documentation/Doc.xcworkspace/contents.xcworkspacedata
+++ b/Documentation/Doc.xcworkspace/contents.xcworkspacedata
@@ -4,6 +4,9 @@
+
+
diff --git a/Documentation/Images/Helpers.png b/Documentation/Images/Helpers.png
index b94d9cd..ffcc2f5 100644
Binary files a/Documentation/Images/Helpers.png and b/Documentation/Images/Helpers.png differ
diff --git a/README.md b/README.md
index 9b740fd..b51ac89 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
`FormationLayout` is the top level layout class for one root view.
- `FormationLayout` takes a `UIView` as its `rootView`.
-- `translatesAutoresizingMaskIntoConstraints` of `rootView` is set to false by default but can also be true if set in constructor.
+- `translatesAutoresizingMaskIntoConstraints` of `rootView` is not set to false by default but can be set in constructor.
- `translatesAutoresizingMaskIntoConstraints` of subviews will be set to false automaticly.
- Subviews with no `superView` will be added to `rootView` automaticly.
@@ -50,14 +50,16 @@ demo { canvas, icon1, icon2, icon3 in
### Helpers
+- aspectRatio: `width:height`
- size: width & height
- center: centerX & centerY
```swift
-demo { canvas, icon1, icon2 in
+demo { canvas, icon1, icon2, icon3 in
let layout = FormationLayout(rootView: canvas)
- layout[icon1].size(equalTo: 30).center(equalTo: canvas, multiplyBy: 0.8)
- layout[icon2].size(equalTo: icon1, minus: 10).center(equalTo: icon1, plus: 30)
+ layout[icon1].aspectRatio(equalTo: 1.5).width(equalTo: 30)
+ layout[icon2].size(equalTo: 30).center(equalTo: canvas, multiplyBy: 0.8)
+ layout[icon3].size(equalTo: icon2, minus: 10).center(equalTo: icon2, plus: 30)
}
```
diff --git a/Scripts/anchors.swift b/Scripts/anchors.swift
index 2df3d46..67729fc 100644
--- a/Scripts/anchors.swift
+++ b/Scripts/anchors.swift
@@ -78,8 +78,8 @@ func main() {
.map { seedCode.replacingOccurrences(of: seedAnchor, with: $0) }
let equalsString = equals.joined(separator: "\n\n")
- let relations = ["greaterThanOrEqualTo", "lessThanOrEqualTo"]
- .map { equalsString.replacingOccurrences(of: "equalTo", with: $0) }
+ let relations = ["greaterThanOrEqual", "lessThanOrEqual"]
+ .map { equalsString.replacingOccurrences(of: "equalTo", with: "\($0)To").replacingOccurrences(of: ".equal", with: ".\($0)") }
equals.insert("//== ↓ Generated by `swift Scripts/anchors.swift` ↓ ==", at: 1)
let finalCode = header + (equals + relations).joined(separator: "\n\n")
diff --git a/Scripts/helpers.swift b/Scripts/helpers.swift
index efa847c..469d6f6 100644
--- a/Scripts/helpers.swift
+++ b/Scripts/helpers.swift
@@ -54,8 +54,8 @@ func main() {
let header = match[1]
let seedCode = match[2]
- let relations = ["greaterThanOrEqualTo", "lessThanOrEqualTo"]
- .map { seedCode.replacingOccurrences(of: "equalTo", with: $0) }
+ let relations = ["greaterThanOrEqual", "lessThanOrEqual"]
+ .map { seedCode.replacingOccurrences(of: "equalTo", with: "\($0)To").replacingOccurrences(of: ".equal", with: ".\($0)") }
let finalCode = header + ([seedCode, "//== ↓ Generated by `swift Scripts/helpers.swift` ↓ =="] + relations).joined(separator: "\n\n")
diff --git a/Sources/ConstraintMaker+Anchors.swift b/Sources/ConstraintMaker+Anchors.swift
index 135372b..e85a3f4 100644
--- a/Sources/ConstraintMaker+Anchors.swift
+++ b/Sources/ConstraintMaker+Anchors.swift
@@ -423,7 +423,7 @@ extension ConstraintMaker {
/// Make item.left greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func left(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .left, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .left, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.left greaterThanOrEqualTo item2.left * multiplier + constant
@@ -435,7 +435,7 @@ extension ConstraintMaker {
/// Make item.left greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func left(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .left, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .left, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.left greaterThanOrEqualTo item2.left * multiplier - constant
@@ -451,7 +451,7 @@ extension ConstraintMaker {
/// Make item.right greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func right(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .right, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .right, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.right greaterThanOrEqualTo item2.right * multiplier + constant
@@ -463,7 +463,7 @@ extension ConstraintMaker {
/// Make item.right greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func right(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .right, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .right, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.right greaterThanOrEqualTo item2.right * multiplier - constant
@@ -479,7 +479,7 @@ extension ConstraintMaker {
/// Make item.top greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func top(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .top, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .top, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.top greaterThanOrEqualTo item2.top * multiplier + constant
@@ -491,7 +491,7 @@ extension ConstraintMaker {
/// Make item.top greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func top(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .top, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .top, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.top greaterThanOrEqualTo item2.top * multiplier - constant
@@ -507,7 +507,7 @@ extension ConstraintMaker {
/// Make item.bottom greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func bottom(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .bottom, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .bottom, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.bottom greaterThanOrEqualTo item2.bottom * multiplier + constant
@@ -519,7 +519,7 @@ extension ConstraintMaker {
/// Make item.bottom greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func bottom(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .bottom, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .bottom, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.bottom greaterThanOrEqualTo item2.bottom * multiplier - constant
@@ -535,7 +535,7 @@ extension ConstraintMaker {
/// Make item.leading greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func leading(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .leading, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .leading, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.leading greaterThanOrEqualTo item2.leading * multiplier + constant
@@ -547,7 +547,7 @@ extension ConstraintMaker {
/// Make item.leading greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func leading(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .leading, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .leading, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.leading greaterThanOrEqualTo item2.leading * multiplier - constant
@@ -563,7 +563,7 @@ extension ConstraintMaker {
/// Make item.trailing greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func trailing(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .trailing, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .trailing, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.trailing greaterThanOrEqualTo item2.trailing * multiplier + constant
@@ -575,7 +575,7 @@ extension ConstraintMaker {
/// Make item.trailing greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func trailing(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .trailing, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .trailing, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.trailing greaterThanOrEqualTo item2.trailing * multiplier - constant
@@ -591,7 +591,7 @@ extension ConstraintMaker {
/// Make item.width greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func width(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .width, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .width, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.width greaterThanOrEqualTo item2.width * multiplier + constant
@@ -603,7 +603,7 @@ extension ConstraintMaker {
/// Make item.width greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func width(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .width, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .width, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.width greaterThanOrEqualTo item2.width * multiplier - constant
@@ -619,7 +619,7 @@ extension ConstraintMaker {
/// Make item.height greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func height(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .height, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .height, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.height greaterThanOrEqualTo item2.height * multiplier + constant
@@ -631,7 +631,7 @@ extension ConstraintMaker {
/// Make item.height greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func height(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .height, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .height, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.height greaterThanOrEqualTo item2.height * multiplier - constant
@@ -647,7 +647,7 @@ extension ConstraintMaker {
/// Make item.centerX greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerX(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerX, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerX, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerX greaterThanOrEqualTo item2.centerX * multiplier + constant
@@ -659,7 +659,7 @@ extension ConstraintMaker {
/// Make item.centerX greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerX(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerX, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerX, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerX greaterThanOrEqualTo item2.centerX * multiplier - constant
@@ -675,7 +675,7 @@ extension ConstraintMaker {
/// Make item.centerY greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerY(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerY, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerY, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerY greaterThanOrEqualTo item2.centerY * multiplier + constant
@@ -687,7 +687,7 @@ extension ConstraintMaker {
/// Make item.centerY greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerY(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerY, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerY, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerY greaterThanOrEqualTo item2.centerY * multiplier - constant
@@ -703,7 +703,7 @@ extension ConstraintMaker {
/// Make item.lastBaseline greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func lastBaseline(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .lastBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .lastBaseline, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.lastBaseline greaterThanOrEqualTo item2.lastBaseline * multiplier + constant
@@ -715,7 +715,7 @@ extension ConstraintMaker {
/// Make item.lastBaseline greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func lastBaseline(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .lastBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .lastBaseline, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.lastBaseline greaterThanOrEqualTo item2.lastBaseline * multiplier - constant
@@ -731,7 +731,7 @@ extension ConstraintMaker {
/// Make item.firstBaseline greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func firstBaseline(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .firstBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .firstBaseline, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.firstBaseline greaterThanOrEqualTo item2.firstBaseline * multiplier + constant
@@ -743,7 +743,7 @@ extension ConstraintMaker {
/// Make item.firstBaseline greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func firstBaseline(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .firstBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .firstBaseline, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.firstBaseline greaterThanOrEqualTo item2.firstBaseline * multiplier - constant
@@ -759,7 +759,7 @@ extension ConstraintMaker {
/// Make item.centerXWithinMargins greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerXWithinMargins(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerXWithinMargins greaterThanOrEqualTo item2.centerXWithinMargins * multiplier + constant
@@ -771,7 +771,7 @@ extension ConstraintMaker {
/// Make item.centerXWithinMargins greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerXWithinMargins(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerXWithinMargins greaterThanOrEqualTo item2.centerXWithinMargins * multiplier - constant
@@ -787,7 +787,7 @@ extension ConstraintMaker {
/// Make item.centerYWithinMargins greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerYWithinMargins(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerYWithinMargins greaterThanOrEqualTo item2.centerYWithinMargins * multiplier + constant
@@ -799,7 +799,7 @@ extension ConstraintMaker {
/// Make item.centerYWithinMargins greaterThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerYWithinMargins(greaterThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .greaterThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerYWithinMargins greaterThanOrEqualTo item2.centerYWithinMargins * multiplier - constant
@@ -815,7 +815,7 @@ extension ConstraintMaker {
/// Make item.left lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func left(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .left, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .left, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.left lessThanOrEqualTo item2.left * multiplier + constant
@@ -827,7 +827,7 @@ extension ConstraintMaker {
/// Make item.left lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func left(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .left, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .left, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.left lessThanOrEqualTo item2.left * multiplier - constant
@@ -843,7 +843,7 @@ extension ConstraintMaker {
/// Make item.right lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func right(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .right, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .right, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.right lessThanOrEqualTo item2.right * multiplier + constant
@@ -855,7 +855,7 @@ extension ConstraintMaker {
/// Make item.right lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func right(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .right, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .right, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.right lessThanOrEqualTo item2.right * multiplier - constant
@@ -871,7 +871,7 @@ extension ConstraintMaker {
/// Make item.top lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func top(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .top, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .top, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.top lessThanOrEqualTo item2.top * multiplier + constant
@@ -883,7 +883,7 @@ extension ConstraintMaker {
/// Make item.top lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func top(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .top, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .top, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.top lessThanOrEqualTo item2.top * multiplier - constant
@@ -899,7 +899,7 @@ extension ConstraintMaker {
/// Make item.bottom lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func bottom(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .bottom, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .bottom, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.bottom lessThanOrEqualTo item2.bottom * multiplier + constant
@@ -911,7 +911,7 @@ extension ConstraintMaker {
/// Make item.bottom lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func bottom(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .bottom, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .bottom, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.bottom lessThanOrEqualTo item2.bottom * multiplier - constant
@@ -927,7 +927,7 @@ extension ConstraintMaker {
/// Make item.leading lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func leading(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .leading, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .leading, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.leading lessThanOrEqualTo item2.leading * multiplier + constant
@@ -939,7 +939,7 @@ extension ConstraintMaker {
/// Make item.leading lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func leading(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .leading, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .leading, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.leading lessThanOrEqualTo item2.leading * multiplier - constant
@@ -955,7 +955,7 @@ extension ConstraintMaker {
/// Make item.trailing lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func trailing(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .trailing, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .trailing, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.trailing lessThanOrEqualTo item2.trailing * multiplier + constant
@@ -967,7 +967,7 @@ extension ConstraintMaker {
/// Make item.trailing lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func trailing(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .trailing, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .trailing, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.trailing lessThanOrEqualTo item2.trailing * multiplier - constant
@@ -983,7 +983,7 @@ extension ConstraintMaker {
/// Make item.width lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func width(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .width, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .width, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.width lessThanOrEqualTo item2.width * multiplier + constant
@@ -995,7 +995,7 @@ extension ConstraintMaker {
/// Make item.width lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func width(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .width, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .width, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.width lessThanOrEqualTo item2.width * multiplier - constant
@@ -1011,7 +1011,7 @@ extension ConstraintMaker {
/// Make item.height lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func height(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .height, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .height, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.height lessThanOrEqualTo item2.height * multiplier + constant
@@ -1023,7 +1023,7 @@ extension ConstraintMaker {
/// Make item.height lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func height(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .height, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .height, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.height lessThanOrEqualTo item2.height * multiplier - constant
@@ -1039,7 +1039,7 @@ extension ConstraintMaker {
/// Make item.centerX lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerX(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerX, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerX, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerX lessThanOrEqualTo item2.centerX * multiplier + constant
@@ -1051,7 +1051,7 @@ extension ConstraintMaker {
/// Make item.centerX lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerX(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerX, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerX, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerX lessThanOrEqualTo item2.centerX * multiplier - constant
@@ -1067,7 +1067,7 @@ extension ConstraintMaker {
/// Make item.centerY lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerY(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerY, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerY, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerY lessThanOrEqualTo item2.centerY * multiplier + constant
@@ -1079,7 +1079,7 @@ extension ConstraintMaker {
/// Make item.centerY lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerY(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerY, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerY, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerY lessThanOrEqualTo item2.centerY * multiplier - constant
@@ -1095,7 +1095,7 @@ extension ConstraintMaker {
/// Make item.lastBaseline lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func lastBaseline(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .lastBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .lastBaseline, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.lastBaseline lessThanOrEqualTo item2.lastBaseline * multiplier + constant
@@ -1107,7 +1107,7 @@ extension ConstraintMaker {
/// Make item.lastBaseline lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func lastBaseline(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .lastBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .lastBaseline, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.lastBaseline lessThanOrEqualTo item2.lastBaseline * multiplier - constant
@@ -1123,7 +1123,7 @@ extension ConstraintMaker {
/// Make item.firstBaseline lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func firstBaseline(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .firstBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .firstBaseline, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.firstBaseline lessThanOrEqualTo item2.firstBaseline * multiplier + constant
@@ -1135,7 +1135,7 @@ extension ConstraintMaker {
/// Make item.firstBaseline lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func firstBaseline(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .firstBaseline, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .firstBaseline, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.firstBaseline lessThanOrEqualTo item2.firstBaseline * multiplier - constant
@@ -1151,7 +1151,7 @@ extension ConstraintMaker {
/// Make item.centerXWithinMargins lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerXWithinMargins(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerXWithinMargins lessThanOrEqualTo item2.centerXWithinMargins * multiplier + constant
@@ -1163,7 +1163,7 @@ extension ConstraintMaker {
/// Make item.centerXWithinMargins lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerXWithinMargins(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerXWithinMargins, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerXWithinMargins lessThanOrEqualTo item2.centerXWithinMargins * multiplier - constant
@@ -1179,7 +1179,7 @@ extension ConstraintMaker {
/// Make item.centerYWithinMargins lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
public func centerYWithinMargins(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, plus constant: CGFloat = 0, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
+ return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: constant, priority: priority)
}
/// Make item.centerYWithinMargins lessThanOrEqualTo item2.centerYWithinMargins * multiplier + constant
@@ -1191,7 +1191,7 @@ extension ConstraintMaker {
/// Make item.centerYWithinMargins lessThanOrEqualTo item2.attribute * multiplier - constant
@discardableResult
public func centerYWithinMargins(lessThanOrEqualTo attribute: NSLayoutAttribute, of item2: Item, multiplyBy multiplier: CGFloat = 1, minus constant: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .equal, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
+ return makeConstraint(attribute: .centerYWithinMargins, relatedBy: .lessThanOrEqual, toItem: item2, attribute: attribute, multiplier: multiplier, constant: -constant, priority: priority)
}
/// Make item.centerYWithinMargins lessThanOrEqualTo item2.centerYWithinMargins * multiplier - constant
diff --git a/Sources/ConstraintMaker+Helpers.swift b/Sources/ConstraintMaker+Helpers.swift
index 342de8a..13dea32 100644
--- a/Sources/ConstraintMaker+Helpers.swift
+++ b/Sources/ConstraintMaker+Helpers.swift
@@ -26,6 +26,10 @@ import UIKit
extension ConstraintMaker {
+ //--------------------------------------
+ // MARK: size
+ //--------------------------------------
+
/// Make item.with equalTo one value
@discardableResult
public func width(equalTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
@@ -78,6 +82,9 @@ extension ConstraintMaker {
.height(equalTo: .height, of: item2, multiplyBy: multiplier, minus: constant, at: priority)
}
+ //--------------------------------------
+ // MARK: center
+ //--------------------------------------
/// Make center (centerX & centerY) equalTo item2.attribute * multiplier + constant
@discardableResult
@@ -107,22 +114,42 @@ extension ConstraintMaker {
.centerY(equalTo: .centerY, of: item2, multiplyBy: multiplier, minus: constant, at: priority)
}
+ //--------------------------------------
+ // MARK: aspectRatio
+ //--------------------------------------
+
+ /// Make aspect ratio (width:height) equalTo value
+ @discardableResult
+ public func aspectRatio(equalTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
+ return makeConstraintToItem(attribute: .width, relatedBy: .equal, toAttribute: .height, multiplier: value, constant: 0, priority: priority)
+ }
+
+ /// Make aspect ratio (width:height) equalTo size.width:size.height
+ @discardableResult
+ public func aspectRatio(equalTo size: CGSize, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
+ return aspectRatio(equalTo: size.width / size.height, at: priority)
+ }
+
}
//== ↓ Generated by `swift Scripts/helpers.swift` ↓ ==
extension ConstraintMaker {
+ //--------------------------------------
+ // MARK: size
+ //--------------------------------------
+
/// Make item.with greaterThanOrEqualTo one value
@discardableResult
public func width(greaterThanOrEqualTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .width, relatedBy: .equal, constant: value, priority: priority)
+ return makeConstraint(attribute: .width, relatedBy: .greaterThanOrEqual, constant: value, priority: priority)
}
/// Make item.height greaterThanOrEqualTo one value
@discardableResult
public func height(greaterThanOrEqualTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .height, relatedBy: .equal, constant: value, priority: priority)
+ return makeConstraint(attribute: .height, relatedBy: .greaterThanOrEqual, constant: value, priority: priority)
}
/// Make item.size (with & height) greaterThanOrEqualTo one value
@@ -165,6 +192,9 @@ extension ConstraintMaker {
.height(greaterThanOrEqualTo: .height, of: item2, multiplyBy: multiplier, minus: constant, at: priority)
}
+ //--------------------------------------
+ // MARK: center
+ //--------------------------------------
/// Make center (centerX & centerY) greaterThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
@@ -194,20 +224,40 @@ extension ConstraintMaker {
.centerY(greaterThanOrEqualTo: .centerY, of: item2, multiplyBy: multiplier, minus: constant, at: priority)
}
+ //--------------------------------------
+ // MARK: aspectRatio
+ //--------------------------------------
+
+ /// Make aspect ratio (width:height) greaterThanOrEqualTo value
+ @discardableResult
+ public func aspectRatio(greaterThanOrEqualTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
+ return makeConstraintToItem(attribute: .width, relatedBy: .greaterThanOrEqual, toAttribute: .height, multiplier: value, constant: 0, priority: priority)
+ }
+
+ /// Make aspect ratio (width:height) greaterThanOrEqualTo size.width:size.height
+ @discardableResult
+ public func aspectRatio(greaterThanOrEqualTo size: CGSize, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
+ return aspectRatio(greaterThanOrEqualTo: size.width / size.height, at: priority)
+ }
+
}
extension ConstraintMaker {
+ //--------------------------------------
+ // MARK: size
+ //--------------------------------------
+
/// Make item.with lessThanOrEqualTo one value
@discardableResult
public func width(lessThanOrEqualTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .width, relatedBy: .equal, constant: value, priority: priority)
+ return makeConstraint(attribute: .width, relatedBy: .lessThanOrEqual, constant: value, priority: priority)
}
/// Make item.height lessThanOrEqualTo one value
@discardableResult
public func height(lessThanOrEqualTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
- return makeConstraint(attribute: .height, relatedBy: .equal, constant: value, priority: priority)
+ return makeConstraint(attribute: .height, relatedBy: .lessThanOrEqual, constant: value, priority: priority)
}
/// Make item.size (with & height) lessThanOrEqualTo one value
@@ -250,6 +300,9 @@ extension ConstraintMaker {
.height(lessThanOrEqualTo: .height, of: item2, multiplyBy: multiplier, minus: constant, at: priority)
}
+ //--------------------------------------
+ // MARK: center
+ //--------------------------------------
/// Make center (centerX & centerY) lessThanOrEqualTo item2.attribute * multiplier + constant
@discardableResult
@@ -279,4 +332,20 @@ extension ConstraintMaker {
.centerY(lessThanOrEqualTo: .centerY, of: item2, multiplyBy: multiplier, minus: constant, at: priority)
}
+ //--------------------------------------
+ // MARK: aspectRatio
+ //--------------------------------------
+
+ /// Make aspect ratio (width:height) lessThanOrEqualTo value
+ @discardableResult
+ public func aspectRatio(lessThanOrEqualTo value: CGFloat, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
+ return makeConstraintToItem(attribute: .width, relatedBy: .lessThanOrEqual, toAttribute: .height, multiplier: value, constant: 0, priority: priority)
+ }
+
+ /// Make aspect ratio (width:height) lessThanOrEqualTo size.width:size.height
+ @discardableResult
+ public func aspectRatio(lessThanOrEqualTo size: CGSize, at priority: UILayoutPriority = UILayoutPriorityRequired) -> Self {
+ return aspectRatio(lessThanOrEqualTo: size.width / size.height, at: priority)
+ }
+
}
\ No newline at end of file
diff --git a/Sources/ConstraintMaker.swift b/Sources/ConstraintMaker.swift
index 602c6f4..da8b0c7 100644
--- a/Sources/ConstraintMaker.swift
+++ b/Sources/ConstraintMaker.swift
@@ -29,6 +29,9 @@ public protocol ConstraintMaker {
@discardableResult
func makeConstraint(attribute: NSLayoutAttribute, relatedBy relation: NSLayoutRelation, toItem item2: Any?, attribute attr2: NSLayoutAttribute, multiplier: CGFloat, constant c: CGFloat, priority: UILayoutPriority) -> Self
+ @discardableResult
+ func makeConstraintToItem(attribute: NSLayoutAttribute, relatedBy relation: NSLayoutRelation, toAttribute attr2: NSLayoutAttribute, multiplier: CGFloat, constant c: CGFloat, priority: UILayoutPriority) -> Self
+
}
extension ConstraintMaker {
diff --git a/Sources/GroupConstraintMaker.swift b/Sources/GroupConstraintMaker.swift
index 76eb722..ea78592 100644
--- a/Sources/GroupConstraintMaker.swift
+++ b/Sources/GroupConstraintMaker.swift
@@ -31,6 +31,7 @@ public final class GroupConstraintMaker: ConstraintMaker {
self.items = items
}
+ @discardableResult
public func makeConstraint(attribute: NSLayoutAttribute, relatedBy relation: NSLayoutRelation, toItem item2: Any?, attribute attr2: NSLayoutAttribute, multiplier: CGFloat, constant c: CGFloat, priority: UILayoutPriority) -> Self {
for item in items {
item.makeConstraint(attribute: attribute, relatedBy: relation, toItem: item2, attribute: attr2, multiplier: multiplier, constant: c, priority: priority)
@@ -38,6 +39,14 @@ public final class GroupConstraintMaker: ConstraintMaker {
return self
}
+ @discardableResult
+ public func makeConstraintToItem(attribute: NSLayoutAttribute, relatedBy relation: NSLayoutRelation, toAttribute attr2: NSLayoutAttribute, multiplier: CGFloat, constant c: CGFloat, priority: UILayoutPriority) -> Self {
+ for item in items {
+ item.makeConstraint(attribute: attribute, relatedBy: relation, toItem: item, attribute: attr2, multiplier: multiplier, constant: c, priority: priority)
+ }
+ return self
+ }
+
}
extension LayoutManager {
diff --git a/Sources/ItemConstraintMaker.swift b/Sources/ItemConstraintMaker.swift
index 3727bd1..9750ac6 100644
--- a/Sources/ItemConstraintMaker.swift
+++ b/Sources/ItemConstraintMaker.swift
@@ -54,4 +54,9 @@ public final class ItemConstraintMaker: ConstraintMaker {
return self
}
+ @discardableResult
+ public func makeConstraintToItem(attribute: NSLayoutAttribute, relatedBy relation: NSLayoutRelation, toAttribute attr2: NSLayoutAttribute, multiplier: CGFloat, constant c: CGFloat, priority: UILayoutPriority) -> Self {
+ return makeConstraint(attribute: attribute, relatedBy: relation, toItem: item, attribute: attr2, multiplier: multiplier, constant: c, priority: priority)
+ }
+
}