通话结束后处理绿色电话吧

时间:2014-04-28 13:39:27

标签: ios iphone objective-c uiview

打电话后我的应用程序出现问题。该应用程序隐藏了状态栏。

以下是该方案:

  1. 正在进行的电话

  2. 打开应用

  3. 结束通话

  4. 取决于视图(有时它甚至在同一视图上的行为方式不同!)应用程序不再隐藏状态栏。它看起来就像是从它下面开始的。

    我尝试使用此代码解决问题:

    - (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);
        }
    }
    

    有时它会起作用,有时候不会......

    请帮我弄清楚发生了什么......

1 个答案:

答案 0 :(得分:0)

切换通话中状态栏时视图的高度取决于其固定方式。

使用UIView的autoResizingMask来控制视图在调用状态栏显示时是向下移动还是调整大小。

这两个属性,

UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleHeight  

会帮助你。第一个向下推视图,第二个改变大小。

此问题也在stackoverflow上回答HERE