What happens with constraints when a view is removed

autolayout, ios, nslayoutconstraint

Solution

The constraints are removed. If you add A again, you will have to make new constraints for it, or if you save the constraints before you remove A, you can add them back. When I do something like this, I save the constraints like this for a view called view1:

self.portraitConstraints = [NSMutableArray new];
for (NSLayoutConstraint *con in self.view.constraints) {
    if (con.firstItem == self.view1 || con.secondItem == self.view1) {
       [self.portraitConstraints addObject:con];
    }
}

Problem

The question I have is simple but I couldn't find any information in the documentation. What happens with layout constraints when a view is removed from the view hierarchy (or moved to another view)? For example, let's have container `C` with subviews `A` and `B`. Container `C` holds some constraints. Then we call `[A removeFromSuperview]`. What happens with the constraints for `A`? What then happens if we add `A` to `C` again?

Original source

Related problems