当我在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-|"
现在我试图在一行代码中完成但没有成功。
任何帮助都将不胜感激。
答案 0 :(得分: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]
答案 1 :(得分:0)
带有2行的第三位代码含糊不清,需要更多代码。所有这一切都是位置b1和b2,然后设置b3和b4的宽度。它没有设置b3或b4的位置,因此它不明确。
什么在第二位代码(4行)中不起作用?这应该有用。
国家英里的最佳解决方案...使用笔尖或故事板来布局视图。