我有一个包含 UIScrollView 的 UIView。 它们都具有 768x1004 像素的精确尺寸,可以正确适应 iPad 屏幕。
当 iPad 的方向更改为横向模式时, View 的自动调整大小更改为 1044x728 像素,这不是正确的比例并且会产生奇怪的行为。
只有当我在 iOS 6 中工作并且 iPad 以横向模式启动时才会出现这种情况。
在旧版本中从来没有问题,当 iPad 以纵向模式启动时,功能运行良好。
为了使其正常工作,我必须将初始大小更改为 748x1044,但在所有其他情况下,应用程序的大小都不正确。
我的结论是,iOS 6 中可能存在某种机制或错误,当 iPad 以横向模式启动时,它会更改您之前在 xib 上配置的大小。
有什么想法吗?
最佳答案
我无法提供解决您问题的确切代码。我用来调试此类大小调整问题的一种方法是在发生重要事情时注销最外层 View 的框架。
例如
- (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) );
}
通常通过查看日志,您可以看到哪里出了问题。
关于objective-c - IOS 6 奇怪的调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410983/