はじめに
Swiftで、UICollectinViewを使った時に、view〜のライフサイクルとcollectionの表示のためのコールバックがどの順で呼ばれるかを調べたメモ書きです。
Xcode 10.2で調べました。
画面遷移時
他の画面から遷移してきた時の呼び出し順序です。
-
viewDidLoad
-
viewWillAppear
-
viewDidAppear
-
viewWillLayoutSubviews
-
viewDidLayoutSubviews
この後collectionViewのコールバックが呼ばれます。
-
numberOfSections
-
collectionView numberOfItemsInSection (セクションの数だけ繰り返し呼ばれる)
-
collectionView cellForItemAt (section * item の数だけ繰り返し呼ばれる)
そしてもう一組LayoutSubviews関係が呼び出されてました。
-
viewWillLayoutSubviews
-
viewDidLayoutSubviews
collectionView.reloadDate呼び出し時
この時は、当然view〜のライフサイクルのメソッドは呼ばれなく、collectionViewのコールバックのみ呼ばれます。
- reloadData
- numberOfSections
- collectionView numberOfItemsInSection (セクションの数だけ繰り返し呼ばれる)
- collectionView cellForItemAt (section * item の数だけ繰り返し呼ばれる)