Antoine Antoine - 3 months ago 19
Swift Question

Correct way to delete a NSLayoutConstraint

In my apps I'm working a lot with constraints, in most cases with animations as well. In certain circumstances I need to remove constraints and add new ones.

As I need to support iOS 7 as well, I'm not able to use the

active
property, which would else be the solution for me.

The way to remove constraints is to use the
removeConstraint
method on a
UIView
.

Is it possible to create a method like

constraint.remove()


so you don't have to know which view is taking care over the constraint?

Answer

I've ended up using the method autoRemove provided by the PureLayout library: https://github.com/smileyborg/PureLayout

This method finds the commonSuperview using the firstItem or secondItem and removes the constraint from the correct view.

It resulted in this one liner:

containerTopConstraint.autoRemove()