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与此无关。