CS193p - 2015 年冬季 - 计算器故事板自动布局

CS193p - Winter 2015 - Calculator Storyboard Autolayout

我正在使用 App Store 中最新的 Xcode (6.1.1 6A2008a) 完成最新斯坦福 CS193p 课程计算器作业的自动布局部分。

显示 Label 的约束正常工作,但是当我布置 Button 时,自动布局似乎忽略了 Label 的存在。即使在讲座中添加约束后,Button 似乎忽略了 Label,即使约束计数与 Hegarty 教授的相匹配。

布局像这样“有效”,但它不“正确”,我想知道我在这里做错了什么,这样我就不会养成不良的自动布局习惯。

我会 post 截图,但我显然没有足够的声誉来这样做,所以我把我的工作代码放在了 github:

https://github.com/krger/cs193p-2015/tree/master/Calculator

我会很感激 input/guidance/suggestions。除了这里,似乎没有iTunes U“学生”讨论课程的地方。

您的顶部按钮固定到顶部布局指南而不是显示标签的底部。请记住,Hegarty 教授说过要注意蓝线。您的顶部按钮与显示标签重叠,因此当您为按钮创建约束时,AutoLayout 选择将顶部按钮固定到顶部布局指南。

解决这个问题:

  1. 摆脱所有束缚。
  2. 为显示标签重新添加约束。
  3. Select 所有按钮并将它们向下拖动,使 7/8/9/x/sin 的顶部与显示标签的底部对齐。
  4. 为您的按钮重新添加约束。

解决此问题的另一种有效方法是:

  1. 删除每个 7/8/9/x/sin 按钮的顶部约束。
  2. 在“文档布局”视图中,控件依次从每个按钮拖动到显示标签,然后从中选择垂直间距弹出窗口。这将在显示标签的底部添加一个垂直间距约束。您现在只需要修复常量。
  3. 依次单击每个 7/8/9/x/sin 按钮。在 Size Inspector 中编辑 Top Space 约束,将常量更改为 08.

我遇到了同样的问题,经过反复试验,我找到了解决方案。

虽然我不知道Xcode自动布局系统的后台机制,但这个问题似乎与UILabel的'Intrinsic Size'有关。

因此,在 Label 的 'Size Inspector' 处,将 'Intrinsic Size' 值从 'Default(System Defined)' 更改为 'Placeholder'。

之后,您将能够看到蓝色引导线。

无论如何,如果你知道它是如何工作的,请解释原因。谢谢。

在第二讲的56:10左右,他说如果你select你的标签,那么select "Reset to Suggested Constraints"在"Resolve Auto layout Issues"的图标里右下角(两条垂直平行线之间的小三角形),您可以看到标签的底部边缘。这似乎已经为我解决了。

我有一个非常相似的问题,我的按钮没有表现出他们理解的行为我想要相对于顶部标签的边距为 8。他们只是将自己与视图的底部隔开。

嗯...问题就是这样。尽管在顶部约束中设置了 8(在 Pin-->"Add New Constraints" 部分),条仍然是点状的。 (我 post 一张照片,但没有足够的声誉)。

您需要确保在添加新约束时,条形图变为实心。这意味着系统理解约束。

我通过删除号码、切换到不同的框并再次输入号码来解决此问题。我很确定这是一个 xcode 故障,但是在 xcode 几次崩溃后,它终于起作用了。希望这会有所帮助...这对我来说也很令人沮丧。

我 运行 遇到了同样的问题,并且能够通过清除约束、调整标签大小并重试来解决它。

我附上了一张让自动布局正常工作的尺寸截图。您可以尝试复制我的 x=20、y=28 和 height=38,如下面的尺寸检查器面板所示: