iOS - 滚动视图和相等宽度不起作用

Posted

技术标签:

【中文标题】iOS - 滚动视图和相等宽度不起作用【英文标题】:iOS - Scrollview and equal widths does not work 【发布时间】:2016-07-08 01:14:16 【问题描述】:

我遇到了自动布局的问题。我想设置一个简单的滚动视图控制器,使用以下模式视图 -> 滚动视图 -> 视图 -> “我的所有内容”在网络上搜索时到处解释。

这是我的故事板:

理论上一切都是正确的,但等宽约束似乎表现得很奇怪。我做了一个视频给你看:

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

PS:视图控制器没有链接到*ViewController.swift,所以这个控制器后面没有自制代码。

如何解决?谢谢。

【问题讨论】:

【参考方案1】:

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

重现您的问题后,我这样做是为了转换为 wAny hAny

    我去了每个约束并关闭了 wC hR installed 旁边的刻度线。您还需要对 ScrollView 和 Container 执行此操作。 然后我将尺寸等级设置回 wAny hAny。 然后我回到每个约束和 ScrollView 和 Container 并打开 已安装 旁边的勾号,并通过单击“x”删除了 wC hR 之一。

如果您这样做,您的绿色容器视图将同时出现在 PortraitLandscape 中,并且会垂直滚动。


两个提示:

    如果您设置 wCompact hRegular 的原因是您发现使用方形 viewController 会分散注意力,则单击 Storyboard 中的 viewController 并设置 Simulated Metrics SizeiPhone 4.7 英寸Attributes Inspector。 您应该真正在Container 和ScrollView 之间设置Equal Widths,而不是在Container 和***视图之间设置Equal Widths。在您的情况下,这并不重要,因为 ScrollView 及其 SuperView 具有相同的宽度。但是,如果您的 ScrollView 不是屏幕的整个宽度,那么您需要将 Container 宽度限制为 ScrollView 宽度以防止水平滚动。

【讨论】:

谢谢,它解决了我不知道 w* 和 h* 的问题 :)【参考方案2】:

如果您正在谈论 scrollView 的 contentView(container 在您的应用程序中) 如果不能这样工作。 例如。如果将滚动视图中的 contentView 设置为滚动视图的宽度和高度,如果不起作用。

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

或者我也只是将自动布局设置为滚动视图和滚动视图容器的宽度相等。 (见截图)

【讨论】:

【参考方案3】:

我看到你使用 size 类,可能你对 iphone 风景没有限制

【讨论】:

这不是问题的答案

以上是关于iOS - 滚动视图和相等宽度不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode:滚动视图不起作用

滚动视图不在自动布局 xcode 6.4 中滚动

iOS 滚动视图不起作用

ios 8 - 水平滚动视图中的按钮拦截平移事件 - 滚动不起作用

滚动视图不起作用iOS Swift

在 iOS UIAutomation 中滚动表格视图时,scrollToVisible 不起作用