4

I'm really very weak in constraints part of ios. I have gone through many reference link as shown below but still not able solve my issue.

Hide autolayout UIView : How to get existing NSLayoutConstraint to update this one

In case , i need to change the y-axis of UIView2 based on some condition. The storyboard.png shows the layout. enter image description here

If condition fails UIView2 with step1, step 2 and step3 should be visible and it's position should also change as shown in condition1.png

enter image description here

If condition pass UIView2 with step1, step 2 and step3 should not be visible as shown in condition1.png

enter image description here

Please provide me steps for how to achieve the above scenario. I tried it doing but if set the constraint for UIView1 the height remains same and does not change at runtime.

2 Answers 2

5

Just make the outlet of the height constraint of both UIView and use constant property to change the height constraints like...

if conditionfails{
     heightconstOfView1.constant = 0
}
else{
    heightconstOfView2.constant = 0
}
Sign up to request clarification or add additional context in comments.

1 Comment

height of View1 changes but View2 does not move at all.
1

I use outlets for constraints set on the storyboard, for divs between buttons (using old ways to set dynamic layouts). So, for large screens (iPhone 6 and above), I update the values of fixed heights (app only viewed in portrait mode). What worked for me is:

constHeightlogo.constant = 140 //old value = 72
///set any other updates here then force the view
self.view.layoutIfNeeded()

Worked like a charm.

See related here:

Update the constant property of a constraint programmatically in Swift?

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.