0

iOS 6 の同じ黒いステータス バーを iOS 7 に作成する方法がわかりません。SO でこの質問を見つけました: iOS 7 ステータス バーは iPhone アプリで iOS 6 のデフォルト スタイルに戻りますか?

私のアプリでは横向きモードしかないので、これを使用します:

in にUIViewControllerBasedStatusBarAppearance設定( UIApplicationstatusBarStyle メソッドを使用してステータス バーのスタイルを設定できるように、View Controller でステータス バーのスタイルを調整することをオプトアウトするには)。NOinfo.plist

AppDelegate のアプリケーションで:didFinishLaunchingWithOptions を呼び出す

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

 [application setStatusBarStyle:UIStatusBarStyleLightContent];

 self.window.clipsToBounds =YES;

 self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}

return YES;

しかし、これは結果です:

ここに画像の説明を入力

誰でも助けることができますか?または私に別の解決策を提案しますか?

4

1 に答える 1

0

場合によっては、ナビゲーション バーまたは検索バーの背景画像がステータス バーの背後まで広がることがあります (詳細については、次の表の画像を参照してください)。ステータス バーの下にバーがない場合、コンテンツ ビューは画面の高さ全体を使用する必要があります。

ここに画像の説明を入力

Apple doc によると、ナビゲーションの背景画像の高さは正確に 44 ポイントである必要があります。あなたの場合、カスタムの背景画像を使用していませんが、デフォルトの iOS6 ステータス バー スタイルが必要です。これは、次のコードを使用して実現できます。

CGRect rect = CGRectMake(0, 0, 1, 44);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context,[[UIColor colorWithRed:(239/255.0) green:(238/255.0) blue:(239/255.0) alpha:1.0] CGColor]);//Please change RGB value according to ur needs.
CGContextFillRect(context, rect);
UIImage *navigationBackgroundImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[[self navigationController] navigationBar] setBackgroundImage:navigationBackgroundImage forBarMetrics:UIBarMetricsDefault]; 

UIViewControllerBasedStatusBarAppearance を info.plist で NO に設定し、n AppDelegateapplication:didFinishLaunchingWithOptionsを呼び出します。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
 [application setStatusBarStyle:UIStatusBarStyleLightContent];//Dark status bar background with white color text
}

これが問題の解決に役立つことを願っています。詳細については、apple docを参照してください。

于 2013-09-18T10:12:23.013 に答える