【发布时间】:2015-09-24 07:32:40
【问题描述】:
我使用UICollectionView 显示存储在NSMutableArray 中的一些图像
这是我的 cellForItemAtIndexPath 代码
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CollectionViewCell *cell = (CollectionViewCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionViewCell" forIndexPath:indexPath];
if (indexPath.row<self.bookMarksArray.count) {
cell.bookmarkImage.image = [self.bookMarksimages objectAtIndex:indexPath.row];
cell.bookmarkTitle.text =[self.bookMarkNames objectAtIndex:indexPath.row];
}else
{
UIImage *bookMarkImage=[UIImage imageNamed:@"emptyCell.png"];
cell.bookmarkImage.image = bookMarkImage;
cell.bookmarkTitle.text =@"";
}
cell.removeBtn.enabled = NO;
cell.delegate = self;
return cell;
}
我在数组 self.bookMarksImages 中最多有 32 个项目,当我滚动收藏视图时,我可以注意到滚动有延迟(仅第一次)。
但是当我换行时 cell.bookmarkImage.image = [self.bookMarksimages objectAtIndex:indexPath.row];
带有静态图片 cell.bookmarkImage.image = [UIImage imageNamed:@"emptyCell.png"];
我可以看到滚动没有延迟,我的收藏视图滚动顺畅。
这是我的书签图像初始化代码。
-(void)getAllBookmarkImages
{
self.bookMarksimages = [[NSMutableArray alloc] init];
self.bookMarkNames = [[NSMutableArray alloc] init];
NSArray *bookMarksArray = [BookMarks getBookMarks];
for (int i=0; i<self.bookMarksArray.count; i++) {
NSDictionary *bookmarkInfo = [bookMarksArray objectAtIndex:i];
UIImage *bookMarkImage=[UIImage imageWithContentsOfFile:[BookMarks documentsPathForFileName:[bookmarkInfo objectForKey:@"IMAGE"]]];
[self.bookMarksimages addObject:bookMarkImage];
[self.bookMarkNames addObject:[bookmarkInfo objectForKey:@"TITLE"]];
}
}
为什么数组self.bookMarksimages 会导致延迟?
【问题讨论】:
-
你能在你创建
bookMarksimages数组的地方添加代码吗? -
@joern 请检查我的代码,我已经更新了。
标签: ios objective-c uicollectionview uicollectionviewcell