iOS AutoLayoutに甘んじた結果

  • 2021.04.13
97
NO IMAGE

近年ではiPhoneの画面サイズが多様かされ、AutoLayoutでデザインするのが常識の中、「おやっ?」と思う事象が
結局は、AutoLayoutに頼った怠慢からくるテスト漏れですが。。

問題

iPhone 12 Pro Maxの時だけ、TabBarの表示領域が意図した通りに確保されなかった

余談、そもそも、よく見たら、Storyboard上でアイコンが■で表示されているではないか。。
(この時点で、開発者の意図したものではなかった)

iPhone 12 Pro Max(おかしい)

UIViewがTab Barに被っている?ように表示される

Other(期待通り)

期待した通り、表示される

原因


StoryboardでBar ItemのImageを正しく設定できていなかった?ことにより、TabBar内のItemのコンテントのサイズが正しく伝播できなかった模様
※ただし、実機や、シミュレータで対象の画面を表示した場合には、意図した画像は表示されている

Tab Bar ItemのImage(Selected Imageにも)の箇所に意図した画像が表示されていなく、"画像不明"みたいな表示がされている

設定されていた画像自体は、プロジェクト内に存在していたが、拡張子まで指定されていなかった
(最初からこうなのか、途中からこうなったのかは記憶が定かではない)

対応

Storyboard上で、表示したい画像を認識されるように正しく設定

余談

原因が分かった後に、気になったので、おかしかったバージョンに戻してStoryboardでがちゃがちゃレイアウト確認のiPhoneを切り替えていたら、いつのまにか、期待した通りに表示されるようになっていました
若干、xcodeのバグのような気もしますが、StoryboardのXML内で、都合の悪い状態で、高さが保持されてしまったのか、もしくは都合のいい高さが保持されて保存されてしまっていたのか。。