自动布局定义约束

Posted

技术标签:

【中文标题】自动布局定义约束【英文标题】:Auto Layout defining constraints 【发布时间】:2014-05-29 16:36:29 【问题描述】:

我的UIView 上有两个按钮。我希望这两个按钮之间的水平距离应该是超级视图的 20% 宽度?

对此有何帮助?

【问题讨论】:

【参考方案1】:

您可以在两个按钮之间使用一个空的虚拟视图来完成此操作,其宽度是父视图宽度的 20%。

在代码中,它看起来像这样:

// The important thing here is that the buttons are flush against the spacer
[superview addConstraints:
 [NSLayoutConstraint
  constraintsWithVisualFormat:@"[button1]-0-[spacer]-0-[button2]"
  options:0
  metrics:nil
  views:@@"button1" : button1, @"button2" : button2, @"spacer" : spacer]];
// Here, we set the width of the spacer to 20% of the super view
[superview addConstraint:
 [NSLayoutConstraint
  constraintWithItem:spacer
  attribute:NSLayoutAttributeWidth
  relatedBy:NSLayoutRelationEqual
  toItem:superview
  attribute:NSLayoutAttributeWidth
  multiplier:0.2
  constant:0]];

【讨论】:

我遇到了与 IB 为 Portrate 和 Landscape 设置自动布局约束有关的问题,您能提供与此相关的帮助吗?实际上我想在单个视图中设置 10 个按钮,以便如何在 Portrate 和 Landscape 模式下进行管理. @DineshPatel 最好为您的问题打开一个新问题。

以上是关于自动布局定义约束的主要内容,如果未能解决你的问题,请参考以下文章

在自定义 UIView 类 Iphone 上应用自动布局约束。

自动布局 - 以编程方式定义异常约束

ios 6自动布局约束错误

自动布局 - 定义应该改变哪个约束首先调整它的大小

自动布局:使用 UIWebViews 自定义 UIView 高度约束

自定义 UITableViewCell 的自动布局约束在运行时失败