brigadir brigadir -3 years ago 88
iOS Question

iOS autolayout to center my view between two views

How to set up autolayout in Interface Builder to arrange views vertically as shown on image:


Top view
pinned to top screen edge,
Bottom view
pinned to bottom screen edge.
My view
should be centered between top and bottom views (so distance to
Top view
equals to distance to
Bottom view

Answer Source

The way to do this is to have 2 invisible "spacer" views between you visible views.

You can't make spaces have equal height. But you use the "spacer" views and place them between your views (with 0 gap to the surrounding views).

Then you give these views equal heights and they will push your views around to centre the My View with equal gap to the Bottom View and Top View.

i.e. like this...

V:|[Top View][spacer1][My View][spacer2(==spacer1)][Bottom View]|

EDIT - Another way

I just thought of another way of doing this. You could have an invisible container UIView that is between Top View and Bottom View with no gap.

Then you place My View inside this invisible view and centre it vertically.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download