1

当我在 Xcode 中使用 Visual Format Language 对齐 4 个按钮时,我添加了

constraintsWithVisualFormat @"V:|-50-[b1]-10-[b2]-10-[b3]-10-[b4]"

它工作正常。但是当我尝试应用水平约束时,我做到了

@"H:|-20-[b1]-20-|"
@"H:|-20-[b2]-20-|"
@"H:|-20-[b3]-20-|"
@"H:|-20-[b4]-20-|"

我想出的最佳解决方案是将它们成对对齐,例如

@"H:|-20-[b1(==b2)]-20-|"
@"H:|-20-[b3(==b4)]-20-|"

现在我试图用 1 行代码来做,但没有成功。

任何帮助,将不胜感激。

4

2 回答 2

0

“|” 表示您的 [B1] [B2] [B3] [B4] 等的超级视图。您想要做的事情类似于您对垂直约束所做的事情:

constraintsWithVisualFormat: @"H:|-?-[B1]-20-[B2]-20-[B3]-20-[B4]-?-|"

编辑:如果您希望这些在超级视图中居中,您将需要为“?”做一些计算。在上面的答案中。

CGFloat viewWidth = mySuperviewHere.frame.size.width;
CGFloat totalWidth = B1.frame.size.width + ... + B4.frame.size.width + 3 * 20;

CGFloat marginWidth = (viewWidth + totalWidth) / 2.0;

constraintsWithVisualFormat: [NSString stringWithFormat:@"H:|-%f-[B1]-20-[B2]-20-[B3]-20-[B4]-%f-|", marginWidth, marginWidth]
于 2014-10-21T16:46:40.530 回答
0

您的第三段两行代码不明确,需要更多代码。所做的只是定位 b1 和 b2,然后设置 b3 和 b4 的宽度。它没有设置 b3 或 b4 的位置,所以它是模棱两可的。

在第二段代码(4 行)中什么不起作用?那应该行得通。

一个国家英里的最佳解决方案......使用笔尖或故事板来布局视图。

于 2014-10-21T16:49:08.737 回答