2012-11-14 20 views
10

私は自分のアプリでUICollectionViewを使用しています。個々のセルにジェスチャ認識機能を使用しています。UICollectionViewでセルの再利用を無効にする

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

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

スライドが発生している間にアプリのアップデートを無効にしようとしましたが、アプリ内で他の問題が発生していましたので、セルの再利用を無効にする方法があるかどうかは疑問です私はパフォーマンスが大きく低下するとは思わない)。

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

+1

reloadDataを呼び出すだけですか?特定のセルをリロードするだけではどうなりますか?操作されているものを除くすべてのもの? – jrturton

答えて

2

新しいデータがある場合、needsReloadのようなフラグを使用して設定しないのはなぜですか。スライドの後で、必要に応じてそのフラグをチェックし、collectionViewをリロードしますか?これは機能していないのですか?

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

-5

再利用を無効にすることは簡単です。 dequeueReusableCellメソッドを使用しないでください。 allocだけでなく、セルを初期化してください。私はパフォーマンスとメモリの意味に注意を払っています。

+0

私は、私は私が必要しかし、多くの細胞を用いて、配列を満たしたことを試みたが、cellForRowAtIndexPathに私が入れ: 'MyCustomCell *セル= [self.arrayOfCellsがobjectAtIndex:indexPath.row];以下と' しかし、アプリのクラッシュをエラー。 ***アサーションエラー - [UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:] ' – dKrawczyk

+0

@dKrawczyk:完全なエラーメッセージを表示できますか? –

+0

'***アサーションエラー - [UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:]、/SourceCache/UIKit_Sim/UIKit-2372/UICollectionView.m:1138' – dKrawczyk

関連する問題