cocoa - iPad 方向问题

标签 cocoa cocoa-touch ipad uikit

在界面生成器中,我创建了一个包含 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/

相关文章:

cocoa - 适用于 Mac OS X 的 MapKit?

objective-c - 如何将另一个对象添加到我的单例代码中?

iphone - NSTimer 和更新 UI

iphone - UILabel 换行时未完全居中对齐

ios - dequeueReusableCellWithIdentifier 不起作用

ios - 用 NSString 写一个 unicode 字符

cocoa - 使 NSTableView 滚动的行为类似于 UITableView 滚动

iphone - UISegmentedControl 值以编程方式更改

objective-c - 自定义 iPhone 应用程序任务栏

iphone - AVAudioPlayer是否可以循环播放大型音频文件而没有听得见的间隙?