我正在尝试为我的SDImageCache
创建一个gif作为占位符。
首先,我创建了gif:
_imageView =[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, cell.thumbnailImageView.frame.size.width,
cell.thumbnailImageView.frame.size.height)];
_imageView.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"Polygon 1 copy.bolt_00000"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00000"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00001"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00002"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00003"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00004"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00005"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00006"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00007"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00008"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00009"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00010"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00011"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00012"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00013"], [UIImage imageNamed:@"Polygon 1 copy.bolt_00014.png"], nil];
_imageView.animationRepeatCount = 500;
然后我把它变成UIimage
UIImage *imagety = _imageView.image; // get the UIImage
UIImage *otherImage = [UIImage imageNamed:@"Loadimage.png"]; // load another image
_imageView.image = otherImage; // change in the image in your UIImageView
然后我把它作为占位符:
SDImageCache *imageCache = [SDImageCache sharedImageCache];
[imageCache queryDiskCacheForKey:encodedString done:^(UIImage *image, SDImageCacheType cacheType) {
if (image){
cell.thumbnailImageView.image = image;
}else{
[cell.thumbnailImageView setImageWithURL:[NSURL URLWithString:encodedString] placeholderImage:imagety completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
[imageCache storeImage:image forKey:encodedString];
}];
}
}];
但这似乎不起作用?你有什么想法吗?
答案 0 :(得分:0)
如果您检查_imageView.image
返回的值:
UIImage *imagety = _imageView.image;
你应该看到它是nil
。这是因为您使用animationImages
通过视图处理动画。
您无法在SDImage中将UIImageView
(或与之关联的动画)用作占位符图片。
您可以使用:
UIImage *imagety = [UIImage animatedImageWithImages:
[NSArray arrayWithObjects:
[UIImage imageNamed:...],
nil]
duration:10.0f];
(docs)
animatedImageWithImages:持续时间:
从现有图像集创建并返回动画图像。
+ (UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration