iOS - 滚动视图和等宽不起作用
iOS - Scrollview and equal widths does not work
我遇到了自动布局问题。我想设置一个简单的滚动视图控制器,具有以下模式 View -> ScrollView -> View -> "All my content" 在网络上搜索时到处都有解释。
这是我的故事板:
理论上一切都是正确的,但等宽约束似乎表现得很奇怪。我制作了一个视频供您观看:
https://www.youtube.com/watch?v=lAezdxg5L4E&feature=youtu.be
PS : 视图控制器没有链接到*ViewController.swift,所以这个控制器后面没有自制代码。
如何解决?谢谢。
我看到你使用尺寸 class,可能你对 iphone 横向
没有限制
如果您谈论的是 contentView(container 在您的应用程序中),则 scrollView 无法正常工作。
例如。如果您将滚动视图中的 contentView 设置为等于滚动视图的宽度和高度,如果将不起作用。
如果containerView的子视图很复杂,我通常会在scroll view之外设计contantView。 (见屏幕截图)并以编程方式设置它。
或者我也只是将自动布局设置为 scrollView 和 scrollview 容器的宽度相等。 (见截图)
您已经为 wCompact hRegular 尺寸 class 制定了约束条件,它适用于 Portrait[ 中的所有 iPhones =46=]。当您切换到横向时,安装了 none 的约束,这解释了您的问题。将您的约束转换为 wAny hAny,一切都会好起来的。
重现您的问题后,我这样做是为了转换为 wAny hAny:
- 我转到每个约束并关闭 wC hR installed 旁边的勾号。您还需要为 ScrollView 和 Container 执行此操作。
- 然后我将大小 class 设置回 wAny hAny.
- 然后我回到每个约束和 ScrollView 和 Container 并打开 installed 旁边的勾并删除 wC hR 一个通过点击 "x".
如果您这样做,您的绿色 Container 视图将同时出现在 Portrait 和 Landscape 中,并且它会垂直滚动。
两个提示:
- 如果您设置 wCompact hRegular 的原因是您发现使用正方形 viewController 会分散注意力,请单击 viewController Storyboard 并在 Attributes Inspector 中将 Simulated Metrics Size 设置为 iPhone 4.7-inch .
- 你真的应该在 Container 和 ScrollView 之间设置 Equal Widths 而不是在 Container 和顶级视图之间设置 Equal Widths .在您的情况下,这无关紧要,因为 ScrollView 及其 SuperView 具有相同的宽度。但是,如果您的 ScrollView 不是屏幕的整个宽度,那么您需要将 Container 宽度限制为 ScrollView 宽度以防止水平滚动。
我遇到了自动布局问题。我想设置一个简单的滚动视图控制器,具有以下模式 View -> ScrollView -> View -> "All my content" 在网络上搜索时到处都有解释。
这是我的故事板:
理论上一切都是正确的,但等宽约束似乎表现得很奇怪。我制作了一个视频供您观看:
https://www.youtube.com/watch?v=lAezdxg5L4E&feature=youtu.be
PS : 视图控制器没有链接到*ViewController.swift,所以这个控制器后面没有自制代码。
如何解决?谢谢。
我看到你使用尺寸 class,可能你对 iphone 横向
没有限制如果您谈论的是 contentView(container 在您的应用程序中),则 scrollView 无法正常工作。 例如。如果您将滚动视图中的 contentView 设置为等于滚动视图的宽度和高度,如果将不起作用。
如果containerView的子视图很复杂,我通常会在scroll view之外设计contantView。 (见屏幕截图)并以编程方式设置它。
或者我也只是将自动布局设置为 scrollView 和 scrollview 容器的宽度相等。 (见截图)
您已经为 wCompact hRegular 尺寸 class 制定了约束条件,它适用于 Portrait[ 中的所有 iPhones =46=]。当您切换到横向时,安装了 none 的约束,这解释了您的问题。将您的约束转换为 wAny hAny,一切都会好起来的。
重现您的问题后,我这样做是为了转换为 wAny hAny:
- 我转到每个约束并关闭 wC hR installed 旁边的勾号。您还需要为 ScrollView 和 Container 执行此操作。
- 然后我将大小 class 设置回 wAny hAny.
- 然后我回到每个约束和 ScrollView 和 Container 并打开 installed 旁边的勾并删除 wC hR 一个通过点击 "x".
如果您这样做,您的绿色 Container 视图将同时出现在 Portrait 和 Landscape 中,并且它会垂直滚动。
两个提示:
- 如果您设置 wCompact hRegular 的原因是您发现使用正方形 viewController 会分散注意力,请单击 viewController Storyboard 并在 Attributes Inspector 中将 Simulated Metrics Size 设置为 iPhone 4.7-inch .
- 你真的应该在 Container 和 ScrollView 之间设置 Equal Widths 而不是在 Container 和顶级视图之间设置 Equal Widths .在您的情况下,这无关紧要,因为 ScrollView 及其 SuperView 具有相同的宽度。但是,如果您的 ScrollView 不是屏幕的整个宽度,那么您需要将 Container 宽度限制为 ScrollView 宽度以防止水平滚动。