我使用SDWebImage从服务器下载图像异步。服务器上的一些图像大小(1772x1476像素。)我在UICollectionView上显示这些图像。我在几次运行后得到了内存警告和应用程序崩溃。有时它会在第一次下载图像时出现,有时会在我上下滚动集合视图时发生。这是我的代码 -
我在x代码上收到警告,如下面的图片
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
[Mainimage sd_setImageWithURL:[NSURL URLWithString: Obj.imageYH] placeholderImage:[UIImage imageNamed:@""]];
return cell;
}
答案 0 :(得分:1)
您可以使用:
[SDImageCache sharedImageCache] .config.shouldDecompressImages = NO; [[SDWebImageDownloader sharedDownloader] setShouldDecompressImages:NO];
版本4.0-beta
答案 1 :(得分:0)
如果您的应用不需要显示完整尺寸的图片,那么将其缩小然后展示始终是一个好习惯。这是一个做什么的例子。
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:url delegate:self options:0 success:^(UIImage *image)
{
//Scale down the image here and then set to your view.
}
它可以帮助您减少内存问题。
答案 2 :(得分:0)
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
[Mainimage setImageWithURL:[NSURL URLWithString: Obj.imageYH] placeholderImage:[UIImage imageNamed:@""]];
return cell;
}
试试这个