【问题标题】:CS193p - Winter 2015 - Calculator Storyboard AutolayoutCS193p - 2015 年冬季 - 计算器故事板自动布局
【发布时间】:2015-03-01 14:17:16
【问题描述】:

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

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

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

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

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

如果有任何意见/指导/建议,我将不胜感激。除了这里,iTunes U“学生”似乎没有一个可以讨论课程的地方。

【问题讨论】:

    标签: autolayout cs193p


    【解决方案1】:

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

    解决这个问题:

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

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

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

    【讨论】:

    • 感谢您的快速回答。当我最初放置Buttons 时,我试图将它们与显示器底部Label 对齐,但我没有得到Label 底部的蓝色引导线——只有顶部引导线。我删除了所有的限制并重新开始。我删除了 Display Label 并创建了一个新的,限制在顶部、左侧和右侧。我让它比它应该的高,所以它会提示我固定高度以匹配它的预期。即使是现在,我仍然没有得到Label底部的对齐指南——只有顶部指南。签入当前代码。
    【解决方案2】:

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

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

    因此,在标签的“尺寸检查器”中,将“固有尺寸”值从“默认(系统定义)”更改为“占位符”。

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-11-30
            • 1970-01-01
            • 1970-01-01
            • 2018-04-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多