Swift CompositionalLayoutでSectionの有無を確認する方法

Swift Swift
Swift

SwiftのUICollectionViewを実装した際に、CompositionalLayoutを使用した場合のSectionの有無を取得する方法です。

let index: Int? = self.dataSource.snapshot().indexOfSection(Section.Section1)

SnapshotからSectionの有無を取得しようとした時に、上記の記述を行う事でインデックスを取得する事ができます。

SnapshotからSection内のItem(項目)を取得するなら下記の方法で取得できます。

let items: [Item] = self.dataSource.snapshot().itemIdentifiers(inSection: .Section1)

2つの方法の違いは、1つ目の方は、Sectionが無い場合でも機能します。
しかし、2つ目の方法はSectionが無い場合、エラーが発生してしまいます。

Sectionが無い場合とは、appendSectionsでSectionの登録をしていない時。
この場合に、2つ目の方法でItemの有無や個数をカウントしようとすると、エラーになります。

SnapShot内の項目を確認する際に、Sectionが無い状況が発生する場合があるなら1つ目のソースなどでSectionの有無を確認してからitemIdentifiersなどを呼び出す必要があります。

コメント

タイトルとURLをコピーしました