LoginSignup
40
36

More than 5 years have passed since last update.

iOSアプリのステータスバー分表示領域がズレてしまう際の対処法

Last updated at Posted at 2016-03-24

問題

特定の状況でステータスバーの領域が確保されてしまい、コンテンツの表示が y:20px の位置から表示されていた。
こんなところでかなりの時間を費やされたので忘却録として残しておく。

iOSアプリのステータスバー分表示領域がズレてしまう現象

対処法

画像上部の AutoLayout の指定先が Top Layout guide になっていたのが原因のよう。
AutoLayout の指定先が Top Layout guide

これの指定先を Superview にすることで解決した。
Top Layout guide は Xcode がよしなに一番上の要素を決めていて、それが今回は Status Bar の直下を指しているのだと思われる。対して、Superview (=self.view) はスクリーン全体を指しているので、Superview に差し替えることで解決した(ということのはず)。

どうやってするか。self.view にドラッグして制約をつけても、 Top Layout guide についてしまい苦戦。他のアプリと見比べて違いを見てみると、Storyboard 上で Status Bar の表示をオフにしていたのが違いだったのでそこを修正。

Storyboard 上で Status Bar の表示をオンにする
None から Inferred に変更。

Top Layout guide につけていた制約のワーニング
すると、 Top Layout guide につけていた制約でワーニングが出るので、この制約を削除。

画像上部に AutoLayout の制約をつける
再度画像上部の制約をつければ、SuperView に対する制約となり、表示上の問題も解決した。

ステータスバー問題解決後の状態
Superview に対する制約になってる。

なにか、抜け漏れ補足誤りありましたらコメントください。

40
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
36