質問: 初回描画時には下の画像の様に表示されるのですが、 ! showによる画面遷移から戻ってくると以下の様に表示がズレてしまいます。 ! viewのinspectorのtop barあたりを弄ってみましたが改善されませんでした。 autolayoutも関係ないみたいです。 原因が分かる方がいましたら、教えてもらえれば幸いです。 <追記> 新しいプロジェクトを作成してみたところ状況の再現はできませんでしたが、原因ではないかと思われるものを発見しました。 以下の画像は新規プロジェクト(表示がずれない)のstoryboardのスクリーンショットの一部です。collectionView上のセルの背景を白色にしています。 ! そして次の画像が既存プロジェクト(表示がずれる)のstoryboardのスクリーンショットの一部です。 ! このように既存プロジェクトではstoryboard上でcollectionViewのセルの表示が下にずれています。 セルの位置を変更しようとcollectionViewのinspecterを弄ってみましたが変更できません。 このcollectionViewを削除して新しいcollectionViewを置いても代わりませんでした。
回答: 状況を再現できません。こちらが試したこと: 1. Xcodeで、「Tabbed Application」を作成。 2. 「First View Controller」を、UINavigationControllerに置き換える。UINavigationControllerのRootViewControllerを「First View Controller」にする。 3. FirstViewControllerに、UICollectionViewを配置。 4. 「Third View Controller」を作成。FirstViewControllerとSegue(Show)で結ぶ。 5. CollectionViewのセルをタップしたら、ThirdViewControllerに遷移するよう、FirstViewControllerをプログラムする。 6. ThirdViewControllerからFirstViewControllerに戻るのは、ナビゲーションバーの「戻る」NavigationItemをタップして行う。 このように編集したところ、おっしゃるような、セグエで戻ったら、コレクションビューのセルの位置が変化するという現象は起きませんでした。 問題がかならず発生するモデルを、ご提示ください。 **追記の内容に対して:** UINavigationControllerベースのView Controllerに、UiCollectionViewを配置したときのふるまいについて、興味深いものを見つけたので、書いてみます。 ベースビュー上に、なにかのオブジェクト(下図ではボタン)を配置した後で、UICollectionViewを配置すると、Prototype Cellの位置がCollection Viewの中で左上端になります。(左図) !画像の説明をここに入力 !画像の説明をここに入力 その後、ボタンを削除すると、とたんにPrototype Cellの位置が下にずれます。(右図) そのずれる量が、ナビゲーションバーの高さと同じということに注目してください。 これは仮説ですが、AutoLayoutのConstraintsが、すべてベースビューのエッジを対象にしている場合、UICollectionViewのセルの位置が、ナビゲーションバーの高さ分下にずれる。それ以外では、左上に位置する。そういう自動調節が働いているのではないでしょうか? ご質問の最初の問題が、このことに関係しているのかもしれません。