- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的方法 cellForItemAtIndexPath 中,我有这段代码:
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:[NSURL URLWithString:coverURL] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
RRRBigItemCell *cell = (RRRBigItemCell *)[collectionView cellForItemAtIndexPath:indexPath];
if (cell) {
RRRImageView *coverView = (RRRImageView *)[cell viewWithTag:COVER_TAG];
coverView.image = image;
}
}];
当我启动应用程序并向下滚动时,一切正常。但是当我向上滚动时,已经显示的单元格没有加载图像(单元格 == nil)。如果我再次向下滚动,问题仍然存在于已显示的单元格中,只有新单元格加载了图像。知道我做错了什么吗?
最佳答案
@pawan 是正确的,那将是实现 SDWebImage 的最简单方法。它基本上是 UIImage 的一个类别,因此只需使用类别方法 (setImageWithURL)。
自您提出以来还有其他几点;
在您的代码中,您应该在主线程上设置 coverImage.image,而不是在后台。
最好检查 Cell 是否可见,否则显示内容毫无意义。
最好在访问单元格时创建对 Collection View 的弱引用以避免循环引用
所以你的代码 ) 可能会写成如下,如果你坚持按照你的方式去做(使用类别是最好和最简单的方法)
__weak myCollectionViewController *weakSelf = self;
SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:[NSURL URLWithString:coverURL] options:0 progress:^(NSInteger receivedSize, NSInteger expectedSize) {
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished) {
dispatch_async(dispatch_get_main_queue(), ^{
if ([weakSelf.collectionView.indexPathsForVisibleItems containsObject:indexPath]) {
RRRBigItemCell *cell = (RRRBigItemCell *)[weakSelf.collectionView cellForItemAtIndexPath:indexPath];
RRRImageView *coverView = (RRRImageView *)[cell viewWithTag:COVER_TAG];
coverView.image = image;
};
});
}];
关于ios - 使用 SDWebImageManager 在 UICollectionView 中延迟加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532237/
我需要 SDWebImageManager 的完成处理程序功能(将下载或缓存的图像设置为黑白),所以我使用它而不是 sd_setimage。我的问题是我不知道如何使用 SDWebImageManage
在我的方法 cellForItemAtIndexPath 中,我有这段代码: SDWebImageManager *manager = [SDWebImageManager sharedManager
我正在使用下面给出的代码使用 downloadImageWithURL 方法下载图像并将图像分配给 UIImageView 并使用 SDImageCache( ).storeImage,但我无法缓存图
我是一名优秀的程序员,十分优秀!