Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS auto layout: how to dynamically evenly space items?

I need to evenly space X items, and the container for the items can have dynamic width, and I want the first and last items to stick to left and right edge:

|-0-[item1]-[...]-[itemX]-0-|

so that no matter how wide the container is, the items are always evenly spaced, how to implement this with layout constraints?

edit: I was thinking that if I can set item1 and item2 to have same spacing as item2 and item3 and so on, then this should be easy, but I don't think I can set it without a constant width?

like image 353
hzxu Avatar asked Jan 12 '23 06:01

hzxu


1 Answers

You can't set spaces to have the same width but you can use "spacer" views.

Put an invisible view between all your views and you can set the format like this...

@"|[view1][spacer1][view2(==view1)][spacer2(==spacer1)]...[spacerN(==spacer1)][viewN]|"

This will make all the views have equal spaces between them.

Make sure to set the spacer views as alpha 0 or hidden or background color clear.

like image 111
Fogmeister Avatar answered Jan 21 '23 15:01

Fogmeister