![](/img/trans.png)
[英]How to improve efficiency of getting thumbnails of photos and displaying them in UICollectionView in Swift
[英]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.