3

我有一个包含 UIScrollView 的 UIView。它们都具有 768x1004 像素的精确尺寸,以正确适合 iPad 屏幕。

当 iPad 的方向更改为横向模式时,视图的自动调整大小更改为 1044x728 像素,这不是正确的比例并且会产生奇怪的行为。

这只发生在我使用 iOS 6 并且 iPad 以横向模式启动时。

在旧版本中从来没有问题,当 de iPad 以纵向模式启动时,功能运行良好。

为了让它正常工作,我必须将初始尺寸更改为 748x1044,但在所有其他情况下,应用程序的尺寸都不正确。

我的结论是,当 iPad 以横向模式启动时,iOS 6 中可能会出现某种机制或错误,这会改变您之前在 xib 上配置的大小。

有任何想法吗?

4

1 回答 1

3

我无法提供确切的代码来解决您的问题。我用来调试此类大小问题的一种方法是在发生重要事情时注销我最外层视图的框架。

例如

- (void) viewDidLoad {
 //.. etc
 NSLog(@"viewDidLoad: %@", CGRectCreateDictionaryRepresentation(self.view.frame) );
}

- (void) viewDidLayoutSubviews {
 //.. etc
 NSLog(@"viewDidLayoutSubviews: %@", CGRectCreateDictionaryRepresentation(self.view.frame) );
}

 - (void) viewDidAppear {
 //.. etc
 NSLog(@"viewDidAppear: %@", CGRectCreateDictionaryRepresentation(self.view.frame) );
}

通常通过查看日志,您可以了解问题所在和位置。

于 2012-09-17T16:07:30.407 回答