我有一个iOS应用程序,其中有一个集合视图,最多可以有几百个单元格。每个单元格有5个视图,4个UILabels和1个UIImageView。当我通常运行应用程序时,每当我滚动几行时,应用程序会使用荒谬的内存量。就像在3行的大约5Mb的内存中一样。我试图消除所有的代码在cellForItemAtIndexPath使得集合视图控制器是这样的:如何提高UICollectionView效率?
#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
然而,应用程序仍然在滚动使用荒谬的数据。当我打开单元格的故事板视图并删除单元格中的所有视图并再次测量仪器中的应用程序内存使用情况时,在滚动空单元格时没有内存使用情况。我可以看到实际上基于滚动条移动的单元格。
所以问题是单元格中的视图使用了大量的内存,而我没有做任何接受将它们放置在应用程序故事板中的单元格中。
我的问题是,我该如何解决这个问题?我在做一件荒谬的事情吗?
3行是多少个单元格?记忆是你唯一的担忧,还是在滚动时呆滞? –
我说的是行时的意思,对不起。我已经启用了分页功能,并且滚动功能非常流畅,除非我尽可能快地滚动页面,甚至不会太糟糕。这真的只是内存问题。 – harryisaac