我在 UIViewController 中有一个 UICollectionView。在 collectionView cellForItemAtIndexPath: 方法中,它根据数据源创建一系列自定义单元格。自定义单元格又包含一个 UIView,子类化以绘制单个 PDF 页面。
它的设置方式是将 PDF 文件拆分为单个页面,因此单元格 1 包含 PDF 第 1 页,单元格 2 包含 PDF 第 2 页,依此类推。到目前为止一切顺利,这是我的问题:
当我向下滚动时, UICollectionView 开始显示错误的单元格。例如,在一个 34 页的文档中,它以正确的顺序显示单元格/第 1-16 页,但随后开始显示似乎已进一步出列的页面,例如单元格 1、单元格 2、单元格 4。我从来没有到达任何地方靠近单元格/第 34 页。
我过去曾在 UITableView 中看到过类似的行为,并且认为这与单元格的出列或委托方法有关。不太确定 - 任何帮助表示赞赏。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
//create custom cell
CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cellID" forIndexPath:indexPath];
//set file name (always the same; one PDF file)
cell.fileName = fileName;
cell.backgroundColor = [UIColor clearColor];
//set the title to the page number
cell.title = [NSString stringWithFormat:@"page %@", [countArray objectAtIndex:indexPath.row]];
//set the current page (which indicates which page to display) according to the pageCount
cell.currentPage = [[countArray objectAtIndex:indexPath.row] intValue];
return cell; }