首页 > 解决方案 > 如何使“自由形式”的 UIViewController 适合多种屏幕尺寸?

问题描述

我已经创建了几个自由形式的 UIViewController,它们具有超长的滚动高度,宽度等于 iPhone 8 Plus 屏幕的宽度(因为这是我可用于测试的物理设备)。

当我试图让我的应用程序在所有设备上运行到 iPhone SE 大小的屏幕时,我的问题就出现了。高度不是问题,但宽度会造成问题,因为在较小的屏幕尺寸上。

UIViewController 明显比屏幕宽。因此,它允许水平滚动/平移。但是,我的目标是让 ViewController 与正在使用的屏幕的宽度相匹配。所以,只有垂直滚动是可能的。

我试图在 UIViewController 出现时调整它的宽度,但这似乎没有效果。我真的不确定还有什么可以尝试的,并且在网上找不到任何关于此的内容。这是一个明显的修复还是我做错了什么?

标签: iosswiftautolayout

解决方案


我认为您可能将UIViewController误认为是视图。如果您的视图是滚动视图,您可以将滚动视图的内容大小设置为与设备的宽度相同,它应该可以达到预期的效果。

Swift 3.0及更高版本中:

let screenWidth = UIScreen.main.bounds.width
yourScrollView.contentSize.width = screenWidth

推荐阅读