我注意到,当我的 iPhone 应用程序在 iPad2(iOS 版本 4.3.3)上暂停后进入前台时,iPhone 屏幕似乎在一瞬间向上移动了一小部分。我的理解是,iOS 在暂停应用程序之前会拍摄屏幕快照,因此它可以在恢复时快速恢复,但我不清楚它为什么会被转移。状态栏占位符和 iPhone 图像不会上移,只有 iPhone 屏幕的其余部分会上移。我在 5.0 模拟器中没有看到这个问题。
任何想法发生了什么或如何解决这个问题?谢谢
当应用程序加载时,它会显示您在应用程序包中拥有的 default.png 文件。如果此图像与您的应用程序的第一个屏幕相同(苹果建议您应该这样做),那么它将显示此图像,然后在应用程序完成初始化后显示实际屏幕。您可以通过向上移动一两个像素来编辑 png 文件(您只需猜测并检查以查看您需要的确切内容)。
另一种可能性是您的 default.png 大小不正确,因此在应用程序实际启动时正在调整它的大小。检查尺寸是否适合您正在测试的设备。
将状态棒设置为最初隐藏对我来说是这样的。
状态栏最初是隐藏的 YES
这修复了它
- (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];
}
似乎设置然后重置(经过短暂延迟)状态栏解决了这个问题。
这解决了它,但它不应该首先发生。
是的,当您再次回到前台时会发生这种情况。它发生在我身上,我已经通过使用解决了这个问题
(void)layoutSubviews
这意味着我在 layoutSubviews 方法中绘制的东西会发生变化并且工作正常。
有关这方面的更多信息,请查看我的问题和解决方案