のモデルデータがNSArray
変更されていない場合、を呼び出すとreloadData
、UICollectionView
セルは別の場所に表示されますか?
私NSArray
がObj1、Obj2、Obj3を保持している場合、最初はObj1をUICollectionView
最初に正しくマップし、Obj2を2番目にマップします。これは、正しいObjを取得するために使用するためcollectionViewCell
の設定方法です。アレイから。cellForRowAtIndexPath
indexPath.row
ただし、を呼び出すとreloadData
、すべてのオブジェクトが間違ったUICollectionViewCellにマップされます(Obj1は2番目などの別の場所にcollectionViewCell
配置され、Obj2は3番目などに終了しますcollectionViewCell
)。
なぜこれが起こるのですか?ドキュメントに理由が見つかりませんでした。
さらに、モデル配列が変更されたときに同じ問題が発生します。たとえば、myNSArray
がObj1、Obj2、Obj3の場合、Objsの新しいインスタンスが作成され、NSArray
Obj2、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;
}