4

我正在使用故事板和自动布局。我在 UIScrollView 中有一个容器视图。容器视图允许我在情节提要中布局一个长 (320, 1000) 视图。我将 UIScrollView 的内容大小设置为 (320,1000)。
我将 ContainerView 上的以下约束固定到 ScrollView:
宽度等于:320
高度等于:1,000
顶部空间到:Superview
对齐中心 X 到:Superview

Xcode 坚持要添加一个额外的约束。它将底部空间添加到: Superview Equals: -432。它不会让我删除这个约束!我不确定这是否会影响下面的问题。

在我的 iPhone 5 和模拟器的 4" 屏幕上一切正常。
当我在模拟器和我的 iPhone4S 的 3.5" 屏幕上测试它时,我的问题就来了。滚动内容大小被限制为 (320, 568),失去了 ContainerView 的底部。

有人能帮我理解为什么这在 3.5 英寸屏幕上不起作用吗?

4

2 回答 2

12

收到 Apple 技术支持的答复。在 Xcode 中它仍然给我一个错误,但它现在可以在 3.5" 屏幕上运行。 这是答案:

我不确定为什么界面构建器决定将容器视图的底部与滚动视图的内容视图的底部相关联减去 432。您不能删除此约束,因为必须完全定义布局 [1]。但是,如果将该约束提升为用户约束,则可以将常量值编辑为零。这将纠正内容底部被截断的问题。
在 Interface Builder 中:
1) 选择 Container View
2) 切换到 Size 检查器
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

于 2013-06-20T17:54:41.580 回答
0

当您将视图嵌入到 InterfaceBuilder 中的 UIScrollView 中时,会自动设置一个约束。如果您的视图比纵向屏幕“长”,则它根本不会滚动。但是如果你旋转屏幕,你会注意到滚动的能力。要让 UIScrollView 进入 AutoLayout,请查看您的约束。找到“垂直空间 - 滚动视图 - 视图”并将其从“恒定”设置为“自动” - 为我修复了所有问题。

于 2013-09-28T10:51:34.343 回答