故事板自动布局:“容器的尾随空间”与“底部空间到底部布局”

时间:2013-10-03 19:44:45

标签: iphone ios xcode interface-builder autolayout

有人可以帮我理解界面构建器自动布局中“尾随空间到容器”和“底部空间到底部布局”之间的区别吗?

Interface Builder Auto Layout Constraints

我想放置一个布局约束,将视图的底部与其超视图的底部联系起来。以上两点听起来都应该达到这个目的。

任何澄清将不胜感激。

4 个答案:

答案 0 :(得分:22)

前导/尾随是水平间距。 (它没有标记为“左”和“右”,因为它交换了从右到左的语言。)顶部/底部正是它所说的。

“To Container”和“to Layout Guide”的定义不同,但在实践中的工作方式类似。 “To Container”约束控制UI元素与其superview(或其他包含UI元素)的边缘之间的空间。 “到布局指南”约束是垂直间距的特殊情况 - 由于视图在iOS 7中的透明导航/状态/标签栏下方延伸,您通常希望控制UI元素相对于那些元素而不是边缘的位置。图。

所以......

  

我想放置一个布局约束,将视图的底部与其超视图的底部联系起来。

“底部空间到底部布局指南”是您想要的。如果没有标签栏,则相对于超级视图的底部设置间距,如果存在标签栏,则相对于标签栏。

答案 1 :(得分:6)

尾随空间

  

从当前视图的右边缘到下一个/邻居视图或超级视图的空间

领先空间

  

从相邻视图或超视图到当前视图左边缘的空间

类似地,顶部和底部对应于顶部和底部空间。

答案 2 :(得分:6)

不要忘记取消选中“相对于保证金” enter image description here

答案 3 :(得分:0)

要添加到已经接受的答案,还值得注意的是,如果要将视图控制器中的视图替换为另一个视图,我发现实际上并未使用布局指南的任何约束。我没有查看具体细节,但我认为这是因为布局指南仅在从故事板加载View Controller时才可用。

出于这个原因,我建议使用布局到容器,但仅当您打算交换视图控制器的视图时。

当我想使用故事板为我的应用创建空状态时,我遇到了这个。

示例:

-(void)viewDidLoad{ UIView* replacementView = //view loaded from storyboard self.view = replacementView //Layout guide margins will not be followed in replacement view }