进入前景时iPhone屏幕会移动

时间:2012-07-03 23:54:49

标签: iphone ios ipad

我注意到当我的iPhone应用程序在iPad2(iOS版本4.3.3)上暂停后进入前台时,iPhone屏幕似乎在瞬间上升了一小部分。我的理解是iOS在暂停应用程序之前拍摄了屏幕的快照,因此它可以在恢复时快速恢复,但我不清楚它为什么会被移动。状态栏占位符和iPhone图像不会向上移动,只有iPhone屏幕的其余部分会移动。我在5.0模拟器中没有看到这个问题。

任何想法发生了什么或如何解决这个问题?感谢

3 个答案:

答案 0 :(得分:1)

当应用加载时,它会显示您的应用包中的default.png文件。如果您的图像与应用程序的第一个屏幕相同(苹果建议您应该这样做),那么它将显示此图像,然后在应用程序完成初始化后显示实际屏幕。您可以通过向上移动一两个像素来编辑png文件(您只需要猜测并检查以确切了解您的需求)。

另一种可能性是你的default.png不是正确的大小,所以当应用程序实际启动时它会被调整大小。检查您正在测试的设备的尺寸是否正确。

答案 1 :(得分:0)

将状态指定设置为最初隐藏导致了这一点。

  

状态栏最初隐藏为是

这解决了它

- (void) setStatusBarVisible: (NSTimer *)timer 
{
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
     [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

     [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(setStatusBarVisible:) userInfo:nil repeats:NO];
 }

似乎设置然后重置(在短暂延迟之后)状态栏可以解决此问题。

这解决了它,但它不应该首先发生。

答案 2 :(得分:0)

是的,当你再来到前景时会发生这种情况。它发生在我身上我已经使用

解决了这个问题
 (void)layoutSubviews

这意味着我在layoutSubviews方法中绘制了一些东西。它工作正常。

有关此check my problem & solution

的更多信息