10

アプリで UICollectionView を個々のセルにジェスチャ認識機能を使用して使用しています。これにより、ユーザーはセルを「スライドして開く」ことができ、その下にあるより多くのデータを表示できます。

問題は、CollectionView のデータを頻繁に再読み込みしていることです。アプリは約 3 秒ごとに更新を受信するためです。これにより、セルのスライド中にコレクションビュー セルが再利用されるという望ましくない動作が発生します。

ユーザーがセルのスライドを開始すると、アプリは更新の reloadData を受け取り、代わりに別のセルがジェスチャの受信を開始し、スライドを開始します。

スライドが発生している間、アプリの更新を無効にしようとしましたが、アプリ内で他の複雑さを引き起こしたので、セルの再利用を無効にする方法があるかどうか疑問に思っています (最大 20 セルしかないので、私はしません。パフォーマンスが大幅に低下するとは思わない)。

ありがとうございました!

4

2 に答える 2

3

needsReload新しいデータが利用できる場合は、のようなフラグを使用して設定してみませんか。スライドの後、そのフラグを確認し、必要に応じてcollectionViewをリロードしますか?これは機能していませんか?

セルを再利用したくない場合は、デフォルトのscrollViewを使用して、すべてのビューをその中に入れてください!?

于 2012-11-14T17:05:12.610 に答える
-6

再利用を無効にするのは簡単です。dequeueReusableCell メソッドを使用しないでください。代わりに、セルを割り当て、初期化します。ただし、そうすることによるパフォーマンスとメモリへの影響には注意が必要です...

于 2012-11-14T17:00:00.117 に答える