のモデルデータがNSArray変更されていない場合、を呼び出すとreloadData、UICollectionViewセルは別の場所に表示されますか?
私NSArrayがObj1、Obj2、Obj3を保持している場合、最初はObj1をUICollectionView最初に正しくマップし、Obj2を2番目にマップします。これは、正しいObjを取得するために使用するためcollectionViewCellの設定方法です。アレイから。cellForRowAtIndexPathindexPath.row
ただし、を呼び出すとreloadData、すべてのオブジェクトが間違ったUICollectionViewCellにマップされます(Obj1は2番目などの別の場所にcollectionViewCell配置され、Obj2は3番目などに終了しますcollectionViewCell)。
なぜこれが起こるのですか?ドキュメントに理由が見つかりませんでした。
さらに、モデル配列が変更されたときに同じ問題が発生します。たとえば、myNSArrayがObj1、Obj2、Obj3の場合、Objsの新しいインスタンスが作成され、NSArrayObj2、Obj3、Obj1などの順序が異なりますreloadData。問題。
Obj2は最初のマップに正しくマップされませんUICollectionViewCellが、代わりに別のマップにマップされますUICollectionViewCell
なぜこれが起こるのか誰もが知っていUICollectionViewsますか?
ありがとう!
編集:コードcellForRowAtIndexPath
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
MIAppCell* cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"MIAppCell" forIndexPath:indexPath];
// set model data
[cell setAppTitle:[(MIAppDO*)[self.apps objectAtIndex:indexPath.row] getAppTitle]];
return cell;
}