2

私のアプリケーションには呼び出し機能があります。電話をかけると、デフォルトの電話アプリに移動します。現在、通話中にアプリにアクセスしています。その時点で、アプリはナビゲーション バーの上に緑色のバーを表示しています。次の詳細画面に移動すると、すべての UI が乱れます。

4

1 に答える 1

2

VC UI を修正するには、次の 3 つの選択肢があります。

まず、コードまたはストロタイボードで自動サイズ変更マスクを設定できます

2 番目: didChangeStatusBarFrame を使用します。

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)newStatusBarFrame {
    if ([UIApplication sharedApplication].statusBarFrame.size.height == 40) {
        // Do adjustment
    }
    else if  ([UIApplication sharedApplication].statusBarFrame.size.height == 20 && oldStatusBarHeight == 40){ // you should keep oldStatusBarHeight 
        // Do adjustment
    }
    else {
        return;
    }
}

3 番目:で Change StatusBarFrame 通知を登録しますviewDidLoad

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil];
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameWillChange:) name:UIApplicationWillChangeStatusBarFrameNotification object:nil];

statusBarFrameWillChangeおよびで VC サイズを調整しますstatusBarFrameChanged

于 2013-08-01T11:16:01.223 に答える