如何在自动布局的代码中设置UIViews之间的标准间距?

时间:2012-10-19 18:22:23

标签: ios autolayout

在界面构建器中,我可以通过'固定'获得与“标准”间距匹配的“垂直空间”:

enter image description here enter image description here

在视觉约束语言中,我可以用以下方法完成同样的事情:

V:[top]-[bottom]

如何在代码中的两个视图之间添加标准间距?

我正在寻找可能出现在UIViewController中的类似内容:

NSLayoutConstraint *spacing = ???
[self.view addConstraint spacing];

2 个答案:

答案 0 :(得分:5)

我没试过这个:

[self.view addConstraint:[NSLayoutConstraint
    constraintWithItem:topView
    attribute:NSLayoutAttributeBottom
    relatedBy:NSLayoutRelationEqual
    toItem:bottomView
    attribute:NSLayoutAttributeTop
    multiplier:1
    constant:8]];

答案 1 :(得分:2)

混合和匹配视觉格式约束和更详细的单一约束创建样式(当你说“在代码中”时我认为你指的是)很好 - 事实上,在WWDC谈论自动布局时,“首选“您创建约束的顺序表示为:

  • 界面构建器
  • 视觉格式
  • 单一约束样式

除非你需要单一约束风格给你的额外力量和灵活性(并且有许多地方可视格式不起作用,根据我迄今为止的体验),你应该使用视觉格式。听起来你是从下往上接近上面的列表,而不是自上而下。

如果您想使用标准间距布置视图,并且您没有使用IB,那么可视化格式将有意义使用。正如Rob所说的那样,“标准”间距并不常见,而且你通过坚持对所有事物的单一约束来为自己做更多的工作。