iOS滚动视图、容器视图-自动布局问题

4
我正在使用storyboards和auto layout。在UIScrollView中有一个Container View。Container View让我在故事板中布局长(320, 1000)的视图。我将UIScrollView的content size设置为(320,1000)。我将以下约束固定在ContainerView上:
宽度等于:320
高度等于:1,000
顶部间距:Superview
Align Center X to: Superview
Xcode坚持要添加一个额外的约束条件。它添加了一个“底部间距到:Superview Equals: -432”。它不允许我删除这个约束!我不确定这是否影响下面的问题。
在我的iPhone5和模拟器的4英寸屏幕上一切正常。当我在模拟器和我的iPhone4S上测试时,出现以下问题:在3.5英寸屏幕上滚动内容大小被限制为(320,568),失去了ContainerView的底部部分。
请问有谁可以帮我理解为什么在3.5英寸屏幕上无法正常工作?
2个回答

12

我从苹果技术支持那里收到了答复。尽管在Xcode中仍然会出现错误,但现在可以在3.5英寸的屏幕上运行。以下是答案:

我不确定为什么接口生成器决定将容器视图底部与滚动视图内容视图的底部相关联并减去432。您无法删除此约束,因为它对于布局的完全定义是必要的[1]。但是,如果将该约束升级为用户约束,则可以编辑常量值为零。这将解决底部内容被截断的问题。
在接口生成器中:
1)选择容器视图
2)切换到“大小”检查器
3)单击“Bottom Space to: Superview; Equals: -432.0”约束旁边的齿轮图标。
4)从菜单中选择“选择和编辑”
5)在恒定字段中输入零值。

[1]: 有关更多信息,请参见技术说明2154的详细说明部分。 https://developer.apple.com/library/ios/#technotes/tn2154/_index.html#//apple_ref/doc/uid/DTS40013309


4
斯科特的精彩回答似乎不适用于 Xcode 5,我该如何在 Xcode 5 中解决这个问题? - Brett Wagner

0
当您在InterfaceBuilder中将视图嵌入UIScrollView时,会自动设置一个约束。如果您的视图在纵向上比屏幕更长,则根本无法滚动。 但是,如果您旋转屏幕,您会注意到可以滚动一点。 要在AutoLayout中启用UIScrollView,请查看您的约束。 找到“垂直空间-滚动视图-视图”,并将其从“常量”设置为“自动”-这对我来说解决了所有问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接