面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

UICollectionViewを使った実装でIn-call Status Bar時、Cellのサイズと座標がおかしくなった時の処置

Simulatorで確認できるIn-call Status Bar時のレイアウト

Simulatorで⌘ + Yを押すことで、In-call Status Barの状態にできる

f:id:aryzae:20180820165303p:plain

この時、Status Barの高さが増すため、考慮していないレイアウトの時に崩れて表示される。

UICollectionViewのcellが崩れた時の処置

UICollectionViewを使った実装を行なっており、In-call Status Barの時に表示されているUICollectionViewは正常に伸び縮みして問題なかったが、UICollectionViewCellは、UICollectionViewにめり込んだりマージンが増えたり意図しない挙動になった。

UIApplicationWillChangeStatusBarFrameでNotificationを受けて座標やサイズを修正しようとしたが上手くいかず。

最終的に、UICollectionViewの初期化時に渡すUICollectionViewFlowLayoutでlayout.estimatedItemSize = UICollectionViewFlowLayoutAutomaticSizeを設定してやることで、In-call Status Barに追従した動きになった。

参照した記事 qiita.com