【发布时间】:2016-06-10 15:16:11
【问题描述】:
我是一个团队的一员,该团队正在为 iPhone 6 开发使用自动布局的应用程序,但我们刚刚发现我们还需要支持 iPhone 4s 和 5。因为布局是为 6 的更大屏幕设计的,我们决定使用 ScrollViews。
我将此视频用作各种教程:
UIScrollView and Autolayout - Xcode 6
在大多数情况下,它是有效的。我可以上下滚动。
问题:
垂直滚动有效。但现在我还必须水平滚动,这并不理想/不应该发生。
即使模拟器设置回 iPhone 6,任何带有滚动视图的东西都会变宽,以至于用户必须横向滚动。
有什么建议吗?
我尝试了什么:
就我的眼睛所见,应用程序的某些部分确实可以顺利运行,但我还没有对这些部分应用滚动视图,因此很难判断是滚动视图的问题还是其他原因。不过,我确实找到了这个:
工作(不使用滚动视图 - 无法向下滚动,但 UI 与屏幕宽度匹配):
我不知道这是否真的有所作为。我也尝试将大小设置为任意/任意,但这与现有的自动布局约束有关。
我也尝试以编程方式执行此操作,但存在一些关于系统返回错误屏幕尺寸的已知问题(这会使一切变得更糟)。
【问题讨论】:
-
一个有效的问题。每当我为不同的方向创建 ScrollView + Autolayout 时,我都会遇到类似的问题。我已经修复了它们,但仍然不知道如何,因为它们是通过反复试验完成的。如果有人也知道答案,我会很感兴趣。
-
滚动视图非常难以使用。我不得不谷歌搜索 UIScrollView 教程来弄清楚如何很好地实现它们
-
澄清一下,iPhone 4/5 只需要垂直滚动?
-
@rigdonmr,我使用的教程视频链接在那里。奇怪,我之前在另一个项目中使用过它,据我记忆,没有任何类似的问题 - 加上视频使用 iPhone 进行测试。
-
仅供参考,与其他视图不同,将滚动视图的顶部、右侧、底部、左侧的视图约束常量设置为 0 不会将内容大小设置为滚动视图的界限。嵌入子视图的宽度是内容大小。作为一个实验,您可以将内容视图的宽度设置为滚动视图宽度的 x3,并将边缘约束的常量设置为 0。通常这会产生冲突,但对于滚动视图子视图则不会。
标签: ios xcode uiscrollview autolayout interface-builder