如何使用ScrollView和ContainerView与Autolayout检查

时间:2013-11-26 13:49:44

标签: ios xcode uiscrollview ios7 xcode5

我无法使用自动布局实现scrollview:/

以下是带有该问题的简单“Hello World”项目:http://www.sendspace.com/file/cg96by

但问题是......我需要创建scrollview,但我还需要使用自动布局。所以我创建了纯单视图应用程序,添加(就像我在一些教程中看到的)Scrollview(与主视图大小相同),添加约束(全零)然后添加容器视图(与滚动视图大小相同),添加约束和..它不起作用:/它不滚动。以下是该情况的屏幕: enter image description here

现在,当我删除两个名为:Center X和Y Alignment(在屏幕上标记)的约束时,它工作得很好,但Xcode5不太喜欢它:/并显示一些错误,如下面的下一个屏幕。

他为什么要宽度和高度为0?

实际上ContainerView并不重要。我也试过图像视图。当您选择“添加缺失约束”时,它还会添加中心X和Y对齐。滚动不起作用。当你删除它们时,滚动有效,但你有这个交战:

enter image description here

2 个答案:

答案 0 :(得分:3)

好的,我发现手动添加autolayout约束非常混乱,使用底部的“添加新约束”按钮真的很方便,尝试这个,在你得到每个视图后你想要它使用这种方式添加每个视图的布局约束(即scrollView,containerView,UIImageView)我做了这个,并且继承了示例,选择每个约束,以便设置顶部,左侧,底部和右侧边缘,这应该完全符合您的要求。

您可能希望删除所有当前约束,然后以这种方式实现它们。

继承你想要的布局http://cl.ly/image/463k2043401L

并且继承了添加约束的示例:http://cl.ly/image/472l2V0l3N1L

为了让它保持动态以便您可以旋转它,您将需要对所有视图执行上述操作但容器视图...然后如果您控制从容器拖动到没有约束的scrollview,您可以添加所有这些它建议除了底部的高度和宽度,它满足任何缺失的约束,并应该做的伎俩,它将容器的中心放在滚动视图内,并将其固定在顶部,底部,左侧和右侧,它应该使用您的滚动视图内容大小动态更改。

http://cl.ly/image/1o3k1e452W0g

对于这种困惑感到抱歉,希望这会有所帮助!

答案 1 :(得分:0)

我遇到了类似的问题,我在Interface Builder中使用纯Autolayout找到了相对简单的解决方案而没有任何代码。

对于概念验证,首先删除View Controller中的任何约束,如果看到它有效。

这是示例布局:

  • 查看(我的UIViewController的主视图)

    • 滚动视图(UIScrollView)

      • 容器视图(UIView)

        • 内容视图(例如UIImageView)

一个。滚动视图宽度/高度应小于容器视图宽度/高度

B中。容器视图应该有一些确定的宽度/高度(可能是明确的宽度/高度)

℃。执行控制 - 将“容器视图”拖动到“滚动视图”并仅添加:

  1. 领先的容器空间
  2. 到容器的尾随空间
  3. d。检查这两个约束并将两者的“常量”值设置为0

    电子。运行应用程序和