iOS - Scrollview和相等宽度不起作用

时间:2016-07-08 01:14:17

标签: ios swift view autolayout scrollview

我遇到了Autolayout的问题。我想设置一个简单的scrollview控制器,具有以下模式View - > ScrollView - >查看 - > "我的所有内容"在网上搜索时无处不在。

这是我的故事板: enter image description here

理论上一切都是正确的,但等宽度约束似乎表现得很奇怪。我为你制作了一个视频,以便能够看到:

https://www.youtube.com/watch?v=lAezdxg5L4E&feature=youtu.be

PS:视图控制器未链接到* ViewController.swift,因此该控制器后面没有自制代码。

如何解决?谢谢。

3 个答案:

答案 0 :(得分:2)

您已为 wCompact hRegular 尺寸类布置了约束,该尺寸类适用于纵向中的所有iPhone。当您切换到横向时,没有安装任何约束来解释您的问题。将您的约束转换为 wAny hAny ,一切都会很好。

重新创建问题后,我这样做是为了转换为 wAny hAny

  1. 我转到了每个约束,并关闭 wC hR安装旁边的刻度线。您还需要为ScrollView和Container执行此操作。
  2. 然后我将尺寸类别设置回 wAny hAny
  3. 然后我回到每个约束和ScrollView和Container并打开已安装旁边的勾号,并通过单击"删除 wC hR 。 X"
  4. 如果您这样做,您的绿色容器视图将同时显示在纵向横向中,它将垂直滚动。

    两个提示:

    1. 如果您设置 wCompact hRegular 的原因是您发现使用方形viewController会分散注意力,那么请单击Storyboard中的viewController并设置模拟指标大小 属性检查器中的 iPhone 4.7英寸
    2. 您应该在Container和ScrollView之间设置 Equal Widths ,而不是在Container和顶级视图之间设置 Equal Widths 。在您的情况下,它并不重要,因为ScrollView及其SuperView具有相同的宽度。但是,如果您的ScrollView不是屏幕的整个宽度,那么您希望将Container宽度限制为ScrollView宽度以防止水平滚动。
    3. Demo in iPhone5s Simulator

答案 1 :(得分:1)

如果您正在讨论scrollView中的contentView(应用程序中的容器),请执行此操作。 例如。如果你将scrollview内的contentView设置为等于滚动视图的宽度和高度,如果不起作用。

如果containerView的子视图很复杂,通常我会在滚动视图之外设计contantView。 (参见屏幕截图)并以编程方式设置。

或者我只是将自动布局的宽度设置为scrollView和scrollview的容器。 (见截图)

enter image description here

答案 2 :(得分:0)

我看到你使用尺寸等级,可能你没有iphone landcape的约束力