【问题标题】:iOS Scroll View, Container View - auto layout issueiOS 滚动视图、容器视图 - 自动布局问题
【发布时间】:2013-06-09 00:40:57
【问题描述】:

我正在使用故事板和自动布局。我在 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 英寸屏幕上不起作用?

【问题讨论】:

    标签: ios uiscrollview autolayout container-view


    【解决方案1】:

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

    我不确定为什么界面构建器决定将容器视图的底部与滚动视图的内容视图的底部相关联减去 432。您不能删除此约束,因为必须完全定义布局 [ 1]。但是,如果将该约束提升为用户约束,则可以将常量值编辑为零。这将纠正内容底部被截断的问题。
    在界面生成器中:
    1) 选择容器视图
    2) 切换到尺寸检查器
    3) 单击“底部空间至:Superview;等于:-432.0”约束旁边的齿轮图标。
    4) 从菜单中选择选择和编辑。
    5) 在常量字段中输入零值。

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

    【讨论】:

    • Scott 的精彩回答似乎不适用于 xcode 5,我该如何在 xcode 5 中解决这个问题?
    【解决方案2】:

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

    【讨论】:

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