Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the multiplier of a constraint based on size class

Is it possible to give a constraint a different multiplier depending on the current size class?

I have a view that I want to be half the size of the screen for a regular size class width and I want it to be 80% of the size of the screen for a compact size class width. In the storyboard I have the option to add different variables for different size classes to the constraints constant value, but not it's multiplier value. It's an Equal Widths Constraint in case that is relevant.

I haven't done much with adding constraints programatically so I'm hoping their might be a solution that lies down that road. Can anyone tell me if it is possible to do what I'm looking for via storyboard or programatically?

like image 578
Tiddly Avatar asked Dec 01 '14 12:12

Tiddly


1 Answers

The solution was painfully obvious, no idea how I missed it. You have to create two different constraints and enable/disable them accordingly.

I think this is a very inelegant solution tho, I would really like if apple would make it so that you can define different multipliers per size class just like the constant variable. Having lots of constraints that only differ by one value seems like it could result in a very unwieldy and hard to maintain storyboard.

If anybody knows of any better solutions, or knows why it is done this way I would still like to hear it.

like image 152
Tiddly Avatar answered Oct 01 '22 19:10

Tiddly