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