Home » Ios » How to set up different Auto Layout constraints for different screen sizes

How to set up different Auto Layout constraints for different screen sizes

Posted by: admin February 24, 2018 Leave a comment


I have a tableView with static cells. The cell contains an ImageView which fills it completely. And I have another smaller ImageViews atop. I position this ImageViews with constraints. I have a question about resizing the constraints.
How can I set different constraint constants for different devices sizes without programming if/else loops. Is there a way to set it in the storyboard? I have a leading constraint to parent layout for example with an constant value of 10. This is okay for the iPhone 5 screen, but on an iPhone 6/ 6 plus screen it should be higher than 10.
iPhone5 Autolayout iPhone6 Autolayout


Very easy. You can change constants values for difference size classes in Storyboard. I am giving u a few steps after which you will be able to grasp it.

First we create constants as you can see on this view
enter image description here

Next we select the constant we want to change the value in other size classes.
enter image description here

Now comes the tricky part. In the attribute inspector after selecting the constant, you can see the value of the constant. Right beside you can see the PLUS (+) sign, left of the “constant”.
enter image description here

Click on it and select your size class that you want.
Here i have selected Regular Height Regular Width i.e for iPad sizes.
enter image description here

Next we give it a new value. So the constant, which normally is of value 61, will function as 10 when rendered in a size class of iPad size classes.
enter image description here

Here is the output —
iPhone 4 – enter image description here

iPad Air – enter image description here

As you can see, the same constants has different value in runtime corresponding to different size classes.

Hope my explanation helped you.


Finally, I`ve found the solution which works in my case.

  1. I put the transparent view and added Align Center X/Y to Superview(background image) with the needed offset in the way which it suits my frame for posters(on the background image)- Constraints for the transparent view
  2. Then I attach Equal width/height to my Superview(background image) for that transparent view and change multiplier in equal width(manually I picked 0.61)
  3. After that, I landed my 1 poster. I also centered both vertically and horizontally with offset and used this set of constraints- Proportional width to Superview, Aspect ratio.
  4. And the last I disposed my second poster with this constraints- Leading space to Poster1, Align CenterY to Poster1(with the offset in my case) and Equal width/height. Constraints for the Poster 1/2

As the result, I have really adaptive Autolayout which works almost great on iPhones 5-6-6+