小学社会308636 views
高校生物549842 views
高校日本史189857 views
中学数学621382 views
りんご192546 views
高校物理158224 views
英語607877 views
LaTeX957300 views
数学講師2852771 views
高校国語785655 views
Help
Tools

English

UICollectionViewを縦にスクロールしてすべてのセルを表示する(UICollectionViewFlowLayoutのscrollDirection)

UICollectionViewは初期化する前にレイアウトを必ず決める。レイアウトなんてどうでもいいと思ってしまいがちだが、UICollectionViewでは深刻なエラーにつながる。

結論:

let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .vertical
collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: 500, height: 500), collectionViewLayout: layout)

frameと一緒にレイアウトを入れる。レイアウト(UICollectionViewFlowLayoutクラス)のプロパティにはscrollDirectionがある。これをverticalにするだけで、すべてのセルを表示できる。あとはUICollectionViewの高さを適宜調節する。

ちなみにscrollDirectionを設定しないと、セルが多くなったときにcellForItemAtがきちんと値を返さない。UICollectionViewを使うときは、layout.scrollDirection = .verticalの記述はほぼ義務である。