打电话后我的应用程序出现问题。该应用程序隐藏了状态栏。
以下是该方案:
正在进行的电话
打开应用
结束通话
取决于视图(有时它甚至在同一视图上的行为方式不同!)应用程序不再隐藏状态栏。它看起来就像是从它下面开始的。
我尝试使用此代码解决问题:
- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
UIView *topView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
if (oldStatusBarFrame.size.height == 40)
{
topView.frame = CGRectMake(topView.frame.origin.x, -20, topView.frame.size.width, topView.frame.size.height);
}
}
有时它会起作用,有时候不会......
请帮我弄清楚发生了什么......
答案 0 :(得分:0)
切换通话中状态栏时视图的高度取决于其固定方式。
使用UIView的autoResizingMask来控制视图在调用状态栏显示时是向下移动还是调整大小。
这两个属性,
UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleHeight
会帮助你。第一个向下推视图,第二个改变大小。
此问题也在stackoverflow上回答HERE