UICollectionViewですべての商品を取りたいと思っています。iOSでUICollectionViewのすべての項目を取得することは可能ですか?
私は以下のコードを書いていますが、私が望むように動作していません。私のCollectionViewには6つの項目がありますが、そのうち4つしか表示されていません。どのように私の義務を修正する必要がありますか?
for(NSIndexPath *indexPath in self.viewCollection.indexPathsForVisibleItems) {
// for(imgCount in self.viewCollection.numberOfSections) {
// NSIndexPath *indexPath = self.viewCollection.indexPathsForVisibleItems;
// Get selected cell
MYCell* cell = (MYCell*) [_viewCollection cellForItemAtIndexPath:indexPath];
if(cell.checked == YES) {
imgCount = imgCount + 1;
NSString *imgName = [directoryContent objectAtIndex:indexPath.item];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@", imgName]];
NSData *imgFile = [NSData dataWithContentsOfFile:filePath];
if(imgCount == 1) {
[IMGDATA_grid appendString:[imgFile base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength]];
}
else {
[IMGDATA_grid appendString:@","];
mTempData = [imgFile base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength];
[IMGDATA_grid appendString:mTempData];
}
}
}
すでにコレクションビューのデータソースにすべてのデータがあります。アイテムを反復処理する必要はありません。 – rmaddy
コレクションビューは、画面全体を満たすのに十分なセルを作成します。ユーザがスクロールすると、コレクションビューは画面の一方の端で消えた項目を取り、画面のもう一方の端でそれらを再利用します。なぜなら 'collectionView.dequeueReusableCell(...) 'を使ってセルを作成するのです。 – Palle
セルはモデルのデータを表示するだけのものです。セルからではなく、モデルからデータを取得します。 – Paulw11