I know how to modify a existing constraint. But I would to know if someone has found a solution to get a constraint without save this one as a property.
Current solution to set Constraint height:
1) save NSLayoutConstraint in a variable:
NSLayoutConstraint *heightConstraint = [NSLayoutConstraint constraintWithItem:myView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0f
constant:20];
[self.view addConstraint:heightConstraint];
2) Set the constant of the Constraint saved to "0.0" ( to hide this view)
[heightConstraint setConstant:200];
I'm looking for a solution like this:
[myView setConstraint:@"0." forAttribute:NSLayoutAttributeHeight]
I just built this Category (https://github.com/damienromito/UIView-UpdateAutoLayoutConstraints) that update constrains when you want:
Or just do it to hide an UIView with autolayout:
UIView has a method that returns all constraints affecting its layout in one of the dimensions:
Then you can just find the one you're interested in.