Browse Source

Improve looping of existing constraints

Robert Payne 9 years ago
parent
commit
ddf15594fd
1 changed files with 6 additions and 2 deletions
  1. 6 2
      Source/Constraint.swift

+ 6 - 2
Source/Constraint.swift

@@ -252,11 +252,15 @@ public class Constraint {
             return
         }
         let layoutConstraints = self.layoutConstraints
-        let existingLayoutConstraints = item.constraints.map({ $0.layoutConstraints }).reduce([]) { $0 + $1 }
         
         if updatingExisting {
+            var existingLayoutConstraints: [LayoutConstraint] = []
+            for constraint in item.constraints {
+                existingLayoutConstraints += constraint.layoutConstraints
+            }
+            
             for layoutConstraint in layoutConstraints {
-                let existingLayoutConstraint = existingLayoutConstraints.first { $0 == layoutConstraint }
+                let existingLayoutConstraint = existingLayoutConstraints.first { $0.canUpdate(constraint: layoutConstraint) }
                 guard let updateLayoutConstraint = existingLayoutConstraint else {
                     fatalError("Updated constraint could not find existing matching constraint to update: \(layoutConstraint)")
                 }