Objective C uiCollectionView滚动和加载图像使其感觉滞后

时间:2015-12-30 03:16:23

标签: objective-c uicollectionview

我必须将许多图片加载到UICollectionView。当我滚动UICollectionView时,当我滚动到下一页时,我觉得它有点滞后。是因为我下一页时加载了12张图片吗?如果是,我该如何解决呢。以下是我的代码。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *identifier = @"TestAZCollectionViewCell";

    TestAZCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    imgPath = [imgDir stringByAppendingPathComponent:[[itemArray objectAtIndex:indexPath.row]objectForKey:@"IM_ImgName"]];

    cell.cellImage.image = [UIImage imageWithContentsOfFile:imgPath];
    cell.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"no_image.jpg"]];


    return cell;
}

任何人都可以提供帮助吗?

3 个答案:

答案 0 :(得分:0)

试试这个方法:

- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath;

或者在:

中找到一些新方法

UICollectionViewDelegate

UICollectionViewDataSource

我希望我能帮到你!

答案 1 :(得分:0)

它滞后是因为系统需要从磁盘或网络加载图像 - >这里慢点。要提高速度,您可以执行以下操作:

  • 使用不同的线程而不是主线程来加载图像对象 - 完成后 - >通过主线程更新UI。

  • 大尺寸的图像会导致UI滚动速度慢以及加载时间 - >如果可能,请将图像大小调整为集合中图像视图的大小。

  • 延迟加载,首先显示带有图像持有者的单元格,并在加载图像时更新图像

答案 2 :(得分:0)

最后我解决了这个问题。为了使其顺利滚动,我使用“haneke”来显示本地图像。希望可以帮助其他