【问题标题】:iPhone 4 & 5 Autoresize Vertical SpaceiPhone 4 & 5 自动调整垂直空间大小
【发布时间】:2013-06-27 15:21:02
【问题描述】:

我在 Interface Builder for iPhone 4 维度中构建了我的视图。我认为 iOS 6 中的 Autoresize Constraints 会自动调整大小。屏幕截图显示了 Xcode 自动添加的 Top Space 约束。上面说橙色视图顶部和底部的关系必须是 332 点。

在 iPhone 5 中查看时,橙色按钮一直延伸到底部,如下面的屏幕截图所示。

将关系更改为大于或等于时,视图不会更改并保持不变。移除常量使其成为 Auto 时,视图会在整个屏幕上拉伸。如果高度为 44 点且位于底部,如何指定约束?

【问题讨论】:

    标签: iphone ios interface-builder autoresize


    【解决方案1】:

    对超级视图的顶部没有约束。将其固定到超级视图的底部,并将高度固定为 44,然后删除将其链接到视图顶部的约束。

    您可以通过选择相关视图并使用界面构建器中的固定菜单(上面带有三个图标的浮动菜单,或编辑器--> 菜单栏中的固定)来实现固定。

    要在 3.5 和 4 英寸显示器之间移动,您需要将内容链接到超级视图的正确边缘。底部的东西应该粘在底部。

    如果您有兴趣,我已经在界面生成器here 中写过关于约束编辑的文章。

    【讨论】:

    • 我无法删除顶部空间限制(它是紫色的)。我只是把它固定在底部,高度仍然是 44,我无法删除顶视图约束,但在 4 英寸显示器上我仍然遇到同样的问题。我怎样才能删除那个顶级约束?我将其设置为 Auto,但只要将其调整为 44 并将其固定到底部超级视图,相同的旧 323 视图约束顶部就会自动返回。有什么建议吗?
    • 如果你已经将视图的底部固定到超级视图的底部,并且高度为44,你应该可以删除顶部约束。您可能必须先将其提升为用户约束。 IB 仅在您拖放视图时添加约束(在这种情况下,它会丢弃所有内容并创建全新的约束)或者如果您没有指定足够的约束来明确定义布局。
    • 所以不要通过拖放将大小设置为 44,至少不要在没有设置其他所有内容的情况下。使用固定菜单定义高度,然后在检查器中编辑约束。
    【解决方案2】:

    尝试添加您自己的约束(用户约束),在每个对象的自动布局中,必须始终有足够的约束来确定其在不同设备屏幕上的位置和大小。

    一旦您将视图放置在布局中,Interface Builder 就会自动为您创建约束。尝试沿着 IB 的自动指南放置您的视图,以帮助它正确猜测您想要的布局。

    在 Xcode 4 之前,它是通过从 Interface Builder 设置弹簧和支柱来完成的,并且弹簧和支柱模型仍然是默认值,因此对于您想要使用自动布局的每个以编程方式创建的视图,不要忘记调用

    setTranslatesAutoresizingMaskIntoConstraints:NO.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多