0

我有一个 UICollectionView,里面有一些图像。在第一次向下滚动时加载图像非常缓慢和生涩。之后,加载图像时就可以了。

我想问题是直到单元格到达导致延迟的屏幕才会加载图像。我假设我需要做的是在图像出现在屏幕上之前加载它们。我不知道该怎么做,显然我在寻找错误的东西,因为我找不到任何答案。请有人能指出我正确的方向吗?

这是加载图像的代码......图像在我的应用程序中没有下载或任何东西。

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"Cell";
    CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
    [[cell myImage]setImage:[UIImage imageNamed:[arrayOfImages objectAtIndex:indexPath.item]]];

    return cell;
}

谢谢!

4

3 回答 3

5

看看这个答案

在出队后添加这两行

cell.layer.shouldRasterize = YES;
cell.layer.rasterizationScale = [UIScreen mainScreen].scale;
于 2015-01-27T07:35:20.133 回答
1

正如您所发现的,即使您没有下载图像,在滚动期间从永久存储加载仍然太慢。尝试将 +imageNamed: 调用视为下载,这会使代码更复杂,但会修复响应性。其他问题的答案,如使用 UIImage 的 UICollectionView 滚动性能不佳可能会有所帮助。

于 2013-05-30T07:09:17.030 回答
0

只需获取内容并将其异步存储在数组中。并且只做委托方法中的分配部分。如果要一次显示所有单元格,请放置一个示例缩略图图像,并在数组获取真实图像时将其替换为原始图像。否则,您可以在每次数组获取对象时重新加载集合视图,这样集合视图的单元格计数会随着图像的获取而逐渐增加。

于 2015-03-22T16:59:38.693 回答