Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa AutoLayout是否可以平均分隔多个按钮?_Cocoa_Osx Lion - Fatal编程技术网

Cocoa AutoLayout是否可以平均分隔多个按钮?

Cocoa AutoLayout是否可以平均分隔多个按钮?,cocoa,osx-lion,Cocoa,Osx Lion,我试图创建一个视图,其中包含一些垂直放置的按钮,我希望调整窗口大小时按钮之间的间距相等。此视图上的约束(使用视觉格式)包括: 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的三个空格中的一个,而其

我试图创建一个视图,其中包含一些垂直放置的按钮,我希望调整窗口大小时按钮之间的间距相等。此视图上的约束(使用视觉格式)包括:

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将这三个空间设置为相等?

在每对按钮之间创建不可见视图,然后将这些视图的宽度限制为相等

V:|-[button1][spaceview 1][button2][spaceview 2][button3]-|


然后创建一个约束,将间隔视图设置为具有相同的宽度,并创建一个约束,即第一个间隔视图的宽度应大于等于0。

不使用自动布局约束,而是应将按钮嵌入
NSMatrix
中,该矩阵将
自动ResizeScell
设置为
YES
。这将自动处理间距,而不显示间距视图。

Bridgeman是对的,但我想补充一点

V:|[button1][spacerView1(>=0)][button2][spacerView2(==spacerView1)][button3][spacerView3(==spacerView1)][button4]|
更简洁一点

你不需要在-s之间加0。 水平间距也是如此

H:|[button1]|
H:|[button2]|
//etc...

我不认为以这种方式间隔按钮会真正符合OS X上的UI准则。我以前在Windows和其他地方见过这种情况,但在OS X上,按钮可能应该使用标准间隔(而不是0)并保持在顶部。我同意,但我正在为另一个GUI工具包开发一个端口,HIG与此无关。