iPhone / iPad Universalアプリで、ステータスバーを半透明にしようとしたところ、iPadのみ半透明にできませんでした。
ログをよく見ると、
UIStatusBarStyleBlackTranslucent is not available on this device.
というエラーが。
ドキュメントにはそれらしい記述が見つからなかったのですが、
どうやらiPad端末はUIStatusBarStyleBlackTranslucentに未対応のようです。
ただ、動画や画像などを見せる画面を作る場合、数秒後にステータスバーを隠すため、
その時に画面ぴったりになるよう、ステータスバーの裏側にもコンテンツを表示したいと思い、
とりあえず、viewWillAppear:とviewDidAppear:で次のようなフックを入れて回避しました。
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent]; if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) { [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES]; } else { [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:YES]; } } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES]; } }
見た目的には少しいまいちなので、他に良い方法があれば探したいです。