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


在视觉约束语言中,我可以用以下方法完成同样的事情:
V:[top]-[bottom]
Run Code Online (Sandbox Code Playgroud)
如何在代码中的两个视图之间添加标准间距?
我正在寻找可能出现在UIViewController中的类似内容:
NSLayoutConstraint *spacing = ???
[self.view addConstraint spacing];
Run Code Online (Sandbox Code Playgroud)
我没试过这个:
[self.view addConstraint:[NSLayoutConstraint
constraintWithItem:topView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:bottomView
attribute:NSLayoutAttributeTop
multiplier:1
constant:8]];
Run Code Online (Sandbox Code Playgroud)
混合和匹配视觉格式约束和更详细的单一约束创建样式(我认为当你说“在代码中”时指的是你所指的)是很好的 - 事实上,在 WWDC 谈论自动布局时,“首选”顺序你创建的约束被表述为:
除非您需要单一约束样式为您提供的额外功能和灵活性(根据我迄今为止的经验,在很多地方视觉格式不起作用),否则您应该使用视觉格式。听起来您是从下往上而不是从上往下接近上面的列表。
如果您想以标准间距布局视图,并且不使用 IB,那么使用视觉格式是有意义的。正如 Rob 所说,可用的“标准”间距并不存在恒定值,并且坚持对所有内容进行单一约束会为您自己带来更多工作。