search
New サムネイル Pythonで同じディレクトリにあるファイルを開く(path.dirname(__file__) New サムネイル PythonでSchema.orgのDate形式(ISO 8601)を扱う New サムネイル 分断するメディアとインターネットのユーザー:ライトノベル、キズナアイ、TikTokに思うこと

SwiftのUICollectionViewはカスタムヘッダーよりカスタムセルを使う

広告

UICollectionViewにヘッダーをつけたいときは、セルをカスタマイズしてヘッダー化すると効率がいい。

理由:
reloadDataのときにUICollectionViewが一回で更新されるため。

viewForSupplementaryElementOfKindを使って特殊なヘッダーを用意してもいいと思う。しかしAlamofireなどでヘッダーとセルを更新する場合、つまりヘッダーとセルの両方を一度に更新したい場合、さまざまなところで難題が出てくる。それ以前に、複雑さが増して開発者の精神がもたない。この辺りは文献も少ない。

まとめ:
UICollectionViewのヘッダーはカスタムセルを使う。

やり方

  • 通常のセルとヘッダーに使うセルの2種類を用意する。
  • 両方ともregisterする。このとき、forCellWithReuseIdentifierはたぶん違うフレーズにしたほうがいい。
  • numberOfItemsInSectionを通常より1つ増やす。
  • cellForItemAtでヘッダーセルと通常セルを場合分けする。
  • sizeForItemAtでヘッダーセルと通常セルを場合分けする。
  • didSelectItemAtでヘッダーセルと通常セルを場合分けする。

この記事はメモです。

広告

広告

広告

コンピューター コンピューター
プログラミング プログラミング
数学 数学
英語 英語
国語 国語
理科 理科
社会 社会

Python入門

Python入門

化学入門

化学入門

漢字辞典

漢字辞典

整数辞典

漢字辞典

Lord Candy

Lord Candy