繁体   English   中英

如何提高UICollectionView的效率?

[英]How can I improve UICollectionView efficiency?

我有一个iOS应用程序,其中有一个集合视图,其中最多可以包含数百个单元格。 每个单元格中有5个视图,4个UILabel和1个UIImageView。 当我正常运行该应用程序时,每当我滚动几行时,该应用程序都会使用大量的内存。 如约5Mb的内存可容纳3行。 我尝试删除cellForItemAtIndexPath中的所有代码,以使集合视图控制器如下所示:

    #import "CollectionView.h"

    @implementation CollectionView

    - (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section {
        return 100;
    }

    - (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Story_Cell_Small";
Cell *cell = [cv dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
return cell;
    }

    @end

然而,该应用程序在滚动时仍会使用大量的数据。 当我打开该单元的情节提要板视图并删除该单元中的所有视图,并再次测量Instruments中我的应用程序的内存使用情况时,在滚动空白单元格时没有内存使用情况。 我可以看到实际上是基于滚动条移动的单元格。

因此,要点是,单元中的视图占用了大量内存,而我没有做任何事情就接受将其放置在应用程序故事板上的单元中。

我的问题是,我该如何解决? 我做错什么了吗?

您的单元格中的图像有多大? 图像消耗了内存。 您如何加载图像? 使用imageNamed:将图像缓存在内存中。 如果使用imageWithContentsOfFile:则不会缓存内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM