6

そのデータソースを何度もUICollectionView呼び出すことに気づきました。collectionView:cellForItemAtIndexPath:たとえば、layoutSubviewsセルがすでに表示されているかどうかに関係なく、すべてのセルで「再構成」されます。

collectionView:cellForItemAtIndexPath:呼び出されると、次のことが期待されます。

このメソッドの実装は、特定のアイテムに適切なセルを作成、構成、および返す役割を果たします。これを行うには、コレクションビューのメソッドを呼び出し、 dequeueReusableCellWithReuseIdentifier:forIndexPath:必要なセルタイプに対応する再利用識別子を渡します。そのメソッドは常に有効なセルオブジェクトを返します。セルを受け取ったら、対応するアイテムのデータに対応するプロパティを設定し、必要な追加の構成を実行して、セルを返す必要があります。

問題は、セルの構成が必ずしも安価な操作であるとは限らないことです。また、既に構成されているセルを再構成する必要がある理由がわかりません。

セルの冗長構成を回避するにはどうすればよいですか?それとも私が正しく理解していないことがありますか?

4

2 に答える 2

1

これは避けられないと思います。問題は、UICollectionViewが非常に一般的であり、FlowLayoutだけがレイアウトではないことです。クレイジーなレイアウトを作成できるので、layoutsubviewsのようにレイアウトを変更すると、必要なレイアウトが完全に変更される可能性があります。縦向きのグリッドと横向きの三角形の配置...レイアウトを知る唯一の方法は各セルの位置とサイズを確認します。

UICollectionビューは、多くの要素に対して安価ではありません。

于 2013-03-20T12:37:48.563 に答える