以下是该方案。
在启动我的应用程序之前,我打个电话。然后我打开我的应用程序,状态栏高度因呼叫通知而翻倍。因此,我的应用程序的整个用户界面被额外的20pt压低了。切换回手机应用程序并结束通话,当我再次打开我的应用程序时,用户界面就像现在一样卡住了,除了绿色通知栏已经消失,在顶部留下额外的20pt黑条。
如果我的应用在拨打电话之前已经启动,则不会发生这种情况。
我使用了[self.window makeKeyAndVisible];
在这种情况下,知道如何正确调整UI吗?
更新
这是代码
ADTransitionController *transitionController= [[ADTransitionController alloc] initWithRootViewController:[[MainViewController alloc] init]];
transitionController.wantsFullScreenLayout = YES;
ConfigurationSetupViewController *menuController = [[ConfigurationSetupViewController alloc] init];
REFrostedViewController *frostedViewController = [[REFrostedViewController alloc] initWithContentViewController:transitionController menuViewController:menuController];
frostedViewController.direction = REFrostedViewControllerDirectionLeft;
frostedViewController.liveBlurBackgroundStyle = REFrostedViewControllerLiveBackgroundStyleLight;
if ([GBDeviceInfo deviceDetails].majoriOSVersion < 7) {
frostedViewController.blurRadius = 2;
}
self.window.rootViewController = frostedViewController;
我已经用REFrostedViewController解决了这个问题。如果我将rootViewController设置为transitionController,则布局完全对齐。
UPDATE2: 事实是..当存在双状态栏时,ADTransitionController将设置coordY = 20和height = 548.REFrostedViewController做同样的事情...导致我有40个保证金顶部..有一件事我不确定是......这些UIViews的框架何时被设置?