|
@@ -160,20 +160,42 @@ public class ConstraintMaker {
|
|
|
internal static func prepareConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {
|
|
internal static func prepareConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] {
|
|
|
let maker = ConstraintMaker(item: item)
|
|
let maker = ConstraintMaker(item: item)
|
|
|
closure(maker)
|
|
closure(maker)
|
|
|
- let constraints = maker.descriptions
|
|
|
|
|
- .map { $0.constraint }
|
|
|
|
|
- .filter { $0 != nil }
|
|
|
|
|
- .map { $0! }
|
|
|
|
|
|
|
+ var constraints: [Constraint] = []
|
|
|
|
|
+ for description in maker.descriptions {
|
|
|
|
|
+ guard let constraint = description.constraint else {
|
|
|
|
|
+ continue
|
|
|
|
|
+ }
|
|
|
|
|
+ constraints.append(constraint)
|
|
|
|
|
+ }
|
|
|
return constraints
|
|
return constraints
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
internal static func makeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {
|
|
internal static func makeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) {
|
|
|
let maker = ConstraintMaker(item: item)
|
|
let maker = ConstraintMaker(item: item)
|
|
|
closure(maker)
|
|
closure(maker)
|
|
|
- let constraints = maker.descriptions
|
|
|
|
|
- .map { $0.constraint }
|
|
|
|
|
- .filter { $0 != nil }
|
|
|
|
|
- .map { $0! }
|
|
|
|
|
|
|
+ var constraints: [Constraint] = []
|
|
|
|
|
+ for description in maker.descriptions {
|
|
|
|
|
+
|
|
|
|
|
+ guard let relation = description.relation,
|
|
|
|
|
+ let related = description.related,
|
|
|
|
|
+ let sourceLocation = description.sourceLocation else {
|
|
|
|
|
+ continue
|
|
|
|
|
+ }
|
|
|
|
|
+ let from = ConstraintItem(target: description.item, attributes: description.attributes)
|
|
|
|
|
+
|
|
|
|
|
+ let constraint = Constraint(
|
|
|
|
|
+ from: from,
|
|
|
|
|
+ to: related,
|
|
|
|
|
+ relation: relation,
|
|
|
|
|
+ sourceLocation: sourceLocation,
|
|
|
|
|
+ label: description.label,
|
|
|
|
|
+ multiplier: description.multiplier,
|
|
|
|
|
+ constant: description.constant,
|
|
|
|
|
+ priority: description.priority
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
|
|
+ constraints.append(constraint)
|
|
|
|
|
+ }
|
|
|
for constraint in constraints {
|
|
for constraint in constraints {
|
|
|
constraint.activateIfNeeded(updatingExisting: false)
|
|
constraint.activateIfNeeded(updatingExisting: false)
|
|
|
}
|
|
}
|
|
@@ -192,10 +214,13 @@ public class ConstraintMaker {
|
|
|
|
|
|
|
|
let maker = ConstraintMaker(item: item)
|
|
let maker = ConstraintMaker(item: item)
|
|
|
closure(maker)
|
|
closure(maker)
|
|
|
- let constraints = maker.descriptions
|
|
|
|
|
- .map { $0.constraint }
|
|
|
|
|
- .filter { $0 != nil }
|
|
|
|
|
- .map { $0! }
|
|
|
|
|
|
|
+ var constraints: [Constraint] = []
|
|
|
|
|
+ for description in maker.descriptions {
|
|
|
|
|
+ guard let constraint = description.constraint else {
|
|
|
|
|
+ continue
|
|
|
|
|
+ }
|
|
|
|
|
+ constraints.append(constraint)
|
|
|
|
|
+ }
|
|
|
for constraint in constraints {
|
|
for constraint in constraints {
|
|
|
constraint.activateIfNeeded(updatingExisting: true)
|
|
constraint.activateIfNeeded(updatingExisting: true)
|
|
|
}
|
|
}
|