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:
//you can use tools to hide/show a uiview
[myView1 hideByHeight:YES];
Or just do it to hide an UIView with autolayout:
//Hide View
[myView1 setConstraintConstant:0 forAttribute:NSLayoutAttributeHeight];
UIView has a method that returns all constraints affecting its layout in one of the dimensions:
NSArray *constraints =
[someView constraintsAffectingLayoutForAxis:UILayoutConstraintAxisVertical];
Then you can just find the one you're interested in.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With