在我的應用程序,我通過簡單的縮放整個窗口,以適應其在剩餘屏幕空間處理的狀態欄幀的變化:處理應用程序:willChangeStatusBarFrame:
- (void)application:(UIApplication *)application willChangeStatusBarFrame:
(CGRect)newStatusBarFrame {
UIView* window = [UIApplication sharedApplication].keyWindow;
[UIView animateWithDuration:1/3.f animations:^{
CGFloat heightDifference = newStatusBarFrame.size.height -
kWXDefaultStatusBarHeight;
[window setTransform:CGAffineTransformMakeScale(1.f,
heightScaleForCallStatusBar())];
[window setFrame:CGRectOffset(window.frame, 0, heightDifference -
kWXDefaultStatusBarHeight/2)];
}];
}
這工作,但如果窗口在通話過程中縮小比例,我提出了一個視圖控制器-presentViewController:animated:completion:
,新的控制器不使用縮放的座標系,它使用未縮放的座標系,並且UI被破壞。任何想法如何讓窗口的.transform
轉移到所呈現的新視圖控制器?
另外,有沒有另一種方式來處理通話狀態欄,而無需重新安排我的所有UI元素?
什麼是「通話中」? - 哦,你的意思是一個*電話*電話! – matt 2013-04-08 23:39:16
真的只是一個副本http://stackoverflow.com/questions/5486491/how-in-call-status-bar-impacts-uiviewcontrollers-view-size-and-how-to-handle – matt 2013-04-08 23:41:06