iOSアプリ内でステータスバーをオンオフする際に、Rootviewがずれない様にする方法

アプリ内の設定でステータスバーをオンオフすると、画面の位置がStatusバーとうまく合わなくて表示がおかしくなってしまうことがあります。

ステータスバーのオンオフによって、ビューの位置がおかしくなる
ステータスバーのオンオフによって、ビューの位置がおかしくなる

この対策方法です。

iphone – Hiding UIStatusBar / Moving UINavigationBar – Stack Overflow こちらのページが参考になりました。

[[UIApplication sharedApplication] setStatusBarHidden:!TOVData.showStatus withAnimation:UIStatusBarAnimationNone];
UIView* superview = [self.navigationController.view superview];
int index = [superview.subviews indexOfObject:self.navigationController.view];
[self.navigationController.view removeFromSuperview];
[superview insertSubview:self.navigationController.view atIndex:index];

このように、一度ビューをsuperviewから削除して、再登録すればうまくいきます。順番がずれないために、indexを取得して、insertしているのもポイントですね。

という事で、次のバージョンのTweetOverviewでは、statusバーを削除して、さらに表示面積を増やす設定を付けてみました(iPhone版も同時にユニバーサルでリリース予定)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください