2013年9月23日月曜日

iOS7でステータスバーが消えなくなった!

ちょっとパニック。

・iPhone5をiOS7にアップデート
・自分のアプリ動かす
・(前回の)UIAlertViewでUITextFieldが表示されない
・修正、起動しようとしたらXcodeから起動できない、7のSDKがない
・Xcode5にアップデート
・修正したアプリを起動すると、広告が変な位置に。。。
・よく見るとステータスバーが表示されている
・デバッグで見ると画面サイズが20px減っている(568->548px)
・画面をずらす対策でようやくOK

長い。。
起動するまで時間かかった上、ステータスバーは普通のやり方で消せませんでした。

◆Cocos2dの場合
AppDelegate.mmのdidFinishLaunchingWithOptionsに以下を追加

// iOS7でステータスバーが表示され20px狭くなる対応、画面をずらしている
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);
    self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);
}

更にinfo.plistに以下を追加
UIViewControllerBasedStatusBarAppearance
値:NO


◆Cocos2dxの場合
RootViewControllerを修正


・RootViewController.h
// iOS7でステータスバーが表示され20px狭くなる対応
- (BOOL) prefersStatusBarHidden;

・RootViewController.mm
// iOS7でステータスバーが表示され20px狭くなる対応
- (BOOL)prefersStatusBarHidden
{
    return YES;
}



Bugとしてチケットきられていました
http://www.cocos2d-x.org/issues/2800

0 件のコメント:

コメントを投稿