2

UICollectionView のデータ ソースを (正当な理由で) 2 層以上の深さのデータ構造でバックアップしようとしています。つまり、データをセクションに分割できますが、それらのセクションのすべてに項目が含まれているわけではありません。項目の配列(いわば「ネストされたセクション」) を含むものもあります。これらの項目は、 3 つのインデックス長 (たとえば 3.2.4)のインデックス パスで簡単に参照できますが、UICollectionView のデータ ソース メソッドは、 2 つのインデックス長までのインデックス パスしかサポートしていないようです。

すべての UICollectionView API は NSIndexPaths を使用してコレクション ビュー アイテムを参照するため、理論的には任意の数のインデックスで動作するはずです。課題は、コレクション ビューに、データ ソース プロトコルのみが提供する場合にこれらのより深いインデックスでアイテムのセル、レイアウト属性などを要求し、要求する必要があるインデックスを指定することを「認識」させることですcollectionView:numberOfItemsInSection:numberOfSectionsInCollectionView:

(a) Appleが明示的に推奨していないUICollectionViewのサブクラス化(「カスタムレイアウトを実装するためのヒント」の2番目のポイント)または(b)データ構造を平坦化する必要がない、これを回避する方法はありますか?理想的であり、UICollectionView が既に提供している API を考えると、どれが不必要に制限されているように見えますか?

4

1 に答える 1

0

標準の collectionView (または tableView) のスキームでは、3 層のインデックスを持つことは論理的に意味がありません。あなたが説明しているのと同じように機能する「拡張」セルを持ついくつかのクールなテーブルビューを見てきました。拡大するセルを表すオブジェクトが、テーブルに複数のアイテムがあることを伝えているだけです。

あなたの collectionView が最終製品としてどのように見えるべきか理解できません。いくつかのインデックス パスで配列に遭遇した場合、何を表現しようとしていますか? 私はあなたのデザインに知らせたくありませんが、その特定のインデックスで 1 つのアイテムを表示し、ユーザーがそれを選択すると、それらの後続のアイテムを含む別のビューを展開または表示しないのはなぜですか?

于 2013-08-23T18:39:30.037 に答える