web-dev-qa-db-ja.com

UICollectionViewヘッダーとフッタービュー

UICollectionViewを使用しており、セクションヘッダーとともにグローバルヘッダーとフッターが必要です。グローバルヘッダーとフッターの両方が、残りのコンテンツとともにスクロールすることになっています。基本的に、これらはUITableViewのtableHeaderViewおよびtableFooterViewプロパティとまったく同じように機能するはずです。

diagram

私が理解していることから、補足ビューは特定のセクションの上または下にあり、装飾ビューは機能しません。私のグローバルヘッダーとフッターにはインタラクティブな要素があるはずです。

数時間試した後、本当に髪を抜いています。 contentInsetsをハッキングしたり、collectionviewにサブビューを追加したりするなど、いくつかの厄介な方法を見つけました。私が本当に探しているのは、これを行うためのクリーンな方法です。

アドバイスをお待ちしております!

27
paul

独自のカスタムコレクションビューレイアウトとデータソースを作成する必要があります。データソースはグローバルヘッダーとグローバルフッター、およびセクションヘッダーとフッターを返し、カスタムコレクションビューレイアウトはそれに応じてそれらを配置する必要があります。

これIS非常に単純なプロセスではありません。

WWDCトークでは、コレクションビューを使用した高度なユーザーインターフェイスで、グローバルヘッダーの作成方法に関するサンプルコードを使用してアプローチについて説明しています。サンプルコードを使用して、それにグローバルフッターセクションを追加できます。

Appleから:

コレクションビューを備えた高度なユーザーインターフェイス

コードファクタリング、スワイプして編集、ドラッグの並べ替え、洗練されたカスタムコレクションビューレイアウトを示します。

5
kurryt

グローバルヘッダーとフッターはどちらも、最初と最後のセクションのセル(UICollectionViewCell)です。

4
nikolsky