有人可以帮我理解界面构建器自动布局中“尾随空间到容器”和“底部空间到底部布局”之间的区别吗?
我想放置一个布局约束,将视图的底部与其超视图的底部联系起来。以上两点听起来都应该达到这个目的。
任何澄清将不胜感激。
答案 0 :(得分:22)
前导/尾随是水平间距。 (它没有标记为“左”和“右”,因为它交换了从右到左的语言。)顶部/底部正是它所说的。
“To Container”和“to Layout Guide”的定义不同,但在实践中的工作方式类似。 “To Container”约束控制UI元素与其superview(或其他包含UI元素)的边缘之间的空间。 “到布局指南”约束是垂直间距的特殊情况 - 由于视图在iOS 7中的透明导航/状态/标签栏下方延伸,您通常希望控制UI元素相对于那些元素而不是边缘的位置。图。
所以......
我想放置一个布局约束,将视图的底部与其超视图的底部联系起来。
“底部空间到底部布局指南”是您想要的。如果没有标签栏,则相对于超级视图的底部设置间距,如果存在标签栏,则相对于标签栏。
答案 1 :(得分:6)
尾随空间
从当前视图的右边缘到下一个/邻居视图或超级视图的空间
领先空间
从相邻视图或超视图到当前视图左边缘的空间
类似地,顶部和底部对应于顶部和底部空间。
答案 2 :(得分:6)
不要忘记取消选中“相对于保证金”
答案 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
}