我正在尝试创建一个包含垂直放置的按钮的视图,我希望在调整窗口大小时按钮之间的空格相等。此视图上的约束(使用可视格式)为:
H:|-0-[button1]-0-|
H:|-0-[button2]-0-|
H:|-0-[button3]-0-|
H:|-0-[button4]-0-|
V:|-0-[button1]-(>=0)-[button2]-(>=0)-[button3]-(>=0)-[button4]-0-|
按钮显示正确,但只考虑定义为> = 0的三个空格中的一个,而其他空格保持为零(布局不明确)。
有没有办法使用AutoLayout将这三个空格设置为相等?
答案 0 :(得分:10)
在每对按钮之间创建不可见的视图,然后将这些视图的宽度限制为相等。
N:| - [button1的] [spacerView1] [BUTTON2] [spacerView2] [BUTTON3] - |
然后创建一个约束,将spacerViews设置为具有相同的宽度,以及约束条件,即第一个spacer视图的宽度应该> = 0。
答案 1 :(得分:4)
布里奇曼是对的,但我想补充一下。
V:|[button1][spacerView1(>=0)][button2][spacerView2(==spacerView1)][button3][spacerView3(==spacerView1)][button4]|
更简洁一点。
您不需要在-s之间放置0。 您的水平间距也是如此
H:|[button1]|
H:|[button2]|
//etc...
答案 2 :(得分:3)
您应该将按钮嵌入NSMatrix
设置为autoresizesCell
的{{1}},而不是使用自动布局约束。这将自动处理间距,而不会看到不可见的间隔视图。