2015-05-19 64 views
10

我一直在学习Xcode和iOS,并且编码方面进展顺利,但我对界面构建器中的一些选项感到困惑。XCode(Interface Builder):更新框架和约束?

看来,当我添加一个限制时,我可以选择“更新框架”,然后选择“新限制条目”或“所有框架”,但似乎并不总是需要这样做......有时候我会,有时我不会 - 我认为我没有真正理解这个概念。它似乎是可选的。什么时候选择它?

一旦添加了一个约束,那应该是它?

还有一个上下文菜单(解决自动布局问题)(在界面构建器底部的第三项,由两条垂直线之间的三角形表示),这也允许我强制更新约束或更新帧。为什么这需要?我注意到里面的选项通常都是禁用的,所以我认为这在有问题时会变为活动状态?

我真的很感激任何解释,我曾尝试搜索互联网,我无法找到任何具体的,我读的越多,越糊涂我似乎得到:-)

而且理智检查:a框架是每个单一控件(视图)的边界框,而不仅仅是视图控件,因此每个视图(控件)都是它自己的框架。这是正确的吗?

预先感谢任何帮助

+0

更换这是否意味着点击'更新Frames'是不实际的运行过程中必要的,只是有你的开发者看到一个更准确故事板表示? – Honey

回答

12

我会尝试解释约束和故事板表示的概念。
约束条件 - 用于确定视图中UIView元素的位置。例如,从视图顶部到UIView元素顶部的垂直距离。

  1. 定位时,你的应用程序运行
  2. 定位的元素在故事板表示本身

更新框架视图里面的元素:当你使用故事板它扮演两个角色添加约束 - 用于当您想要更新故事板显示,以便它符合当前应用的约束。当故事板的显示与约束不匹配时,将出现警告。

添加缺少的约束/更新约束 - 将创建/更改UIView元素上应用的约束,以匹配当前在故事板中呈现的约束。更新帧的其他方式。

+0

谢谢,现在就明白了。 – Martin

3

您不必在“更新帧”每次点击你添加一个约束,如果你这样做,它会更新到任何应根据该视图的框架在约束上。是的,每个视图都有一个框架,它是相对于视图superview的矩形。

通常您可能会点击更新约束(Shift + Command + =),这将允许您调整已经约束的视图并更新匹配的约束。