CS193p - 2015年冬季 - 计算器故事板Autolayout

时间:2015-03-01 14:17:16

标签: autolayout cs193p

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

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

这样的布局“有效”,但不是“正确”,我想知道我在这里做错了什么,所以我不会遇到糟糕的自动布局习惯。

我会发布截图,但我显然没有足够的声誉,所以我将我的工作代码放在github上:

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

我很感激任何意见/指导/建议。除此之外,似乎没有iTunes U“学生”可以讨论该课程的地方。

5 个答案:

答案 0 :(得分:1)

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

解决此问题:

  1. 摆脱所有限制。
  2. 为显示标签添加约束。
  3. 选择所有按钮并将其向下拖动,使7 / 8/9 / x / sin的顶部与显示标签的底部对齐。
  4. 为您的按钮添加约束。
  5. 解决此问题的另一种方法是:

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

答案 1 :(得分:0)

我遇到了同样的问题,经过一些试验和错误后,我得到了一个解决方案。

虽然我不知道Xcode自动布局系统的背景机制,但这个问题似乎与UILabel的“内在大小”有关。

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

之后,您将能够看到蓝色指南。

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

答案 2 :(得分:0)

在第二讲的56:10左右,他说如果选择标签,则在右下角的“解决自动布局问题”图标中选择“重置为建议的约束”(两个小三角之间)垂直平行线),您可以看到标签的下边缘。这似乎已经为我修好了。

答案 3 :(得分:0)

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

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

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

我通过删除号码,标签到另一个框并再次输入数字来修复此问题。我很确定这是一个xcode故障,但是,在几次崩溃的xcode之后,它终于奏效了。希望这对我有帮助......这对我来说也是非常令人沮丧的。

答案 4 :(得分:0)

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

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

Auto Layout label fix