iOS 7 SDK - 导航控制器中的滚动视图在模拟器和设备上是不同的

时间:2013-11-20 00:26:07

标签: ios iphone uiscrollview uinavigationcontroller ios7

在上一课中,我在UINavigationController中展示了一个UIViewController(带有一个XIB)。 XIB是空白的,因为所有视图都是编码的。我正在运行此代码来显示UIScrollView:

mainScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, [UIScreen mainScreen].bounds.size.height-64)];
mainScrollView.backgroundColor = [UIColor clearColor];
mainScrollView.contentSize = CGSizeMake(320, 3525);
[self.view addSubview:mainScrollView];

以下屏幕截图是mainScrollView向下滚动的一半。上述代码对于这两个屏幕截图都是相同的。

在设备上,它看起来像这样

Device Screenshot

在模拟器上,它看起来像这样

Simulator Screenshot

当我上次将此提交到app商店时,我将mainScrollView的y值设置为64,并将高度从设备屏幕高度减去64。它在设备上看起来很完美,但在模拟器上,它被向下移动了64.我从应用程序商店下载的应用程序版本决定使用模拟器,因此在应用程序商店中,我的应用程序有很多错位观点。直到7.0.1,这些观点才被错放。

此外,设备和模拟器都使用相同的iOS 7 SDK构建了构建版本。它们都有iOS 7.0.3,它们都是4“屏幕。

是否有人知道如何正确调整视图的大小和位置,以便设备和模拟器之间没有区别,并且应用程序商店版本实际上是正确的?感谢。

1 个答案:

答案 0 :(得分:1)

在iOS7上会有一个topLayoutGuide来告诉你状态栏和导航栏需要多高。

你可以设置

self.edgesForExtendedLayout = UIRectEdgeNone;

使其像iOS7之前一样