在界面生成器中,我创建了一个包含 UIScrollView 的 UIVIew(UIViewController 的 View )。 UIScrollView 的设置方式是根据 iPad 的方向调整大小。
当我以纵向模式启动应用程序时, View 最初具有纵向的宽度和高度。只有在我开始与应用程序交互后, View 才会突然调整到“正确”的方向。
基本上,我的问题是为什么 UIScrollView (以及 UIView )的框架和边界仍然像设备处于纵向模式一样?我在网上看到了一些关于此问题的帖子,但没有一个真正给了我我正在寻找的答案。
奇怪的是,当我给 UIScrollView 一个生动的背景颜色(这样我可以看到它的尺寸)时,它具有正确的比例,但框架和边界“不正确”。
最佳答案
我弄清楚了,这让我有点惊讶。首先,我注意到 ScrollView 的大小是正确的(即,与设备的方向匹配),这就是我将 ScrollView 的内容大小基于 ScrollView 的边界的原因(因为事实证明)导致所有问题的是不正确的内容大小)。
这一切都工作正常,但需要注意的是, ScrollView (以及与此相关的任何其他 View )的大小不是在 viewDidLoad 方法中而是在 viewWillAppear 方法中调整为设备的方向。 (需要明确的是,前面的内容并不是说这实际上发生在 viewDidLoad 方法中)。
因此,我在 viewDidLoad 方法中错误地设置了 ScrollView 的内容大小,但此时 ScrollView 的大小“不正确”(“不正确”只是指取决于方向)设备的方向,未根据设备的方向进行调整)。我为解决该问题所做的是将设置 ScrollView 内容大小的方法移动到 viewWillAppear 方法。
这听起来很简单(确实如此),但我花了一些时间才弄清楚这一点。我希望这对将来遇到类似问题的人有所帮助。
关于cocoa - iPad 方向问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088375/