Adding method, adding a callback for when image was loaded. This fixes a shortcoming where images loaded into UITableViewCells wouldn't show up until being recycled, needing to layout its subviews

This commit is contained in:
Mattt Thompson 2011-08-05 10:41:20 -05:00
parent 9e107d6a7b
commit 1dad3cb336
2 changed files with 38 additions and 5 deletions

View file

@ -26,7 +26,19 @@
@interface UIImageView (AFNetworking)
- (void)setImageWithURL:(NSURL *)url;
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage;
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage imageSize:(CGSize)imageSize options:(AFImageRequestOptions)options;
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage;
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage
imageSize:(CGSize)imageSize
options:(AFImageRequestOptions)options;
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage
imageSize:(CGSize)imageSize
options:(AFImageRequestOptions)options
block:(void (^)(UIImage *image))block;
@end

View file

@ -60,15 +60,32 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat
return _imageRequestOperationQueue;
}
#pragma mark -
- (void)setImageWithURL:(NSURL *)url {
[self setImageWithURL:url placeholderImage:nil];
}
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage {
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage
{
[self setImageWithURL:url placeholderImage:placeholderImage imageSize:self.frame.size options:AFImageRequestDefaultOptions];
}
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage imageSize:(CGSize)imageSize options:(AFImageRequestOptions)options {
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage
imageSize:(CGSize)imageSize
options:(AFImageRequestOptions)options
{
[self setImageWithURL:url placeholderImage:placeholderImage imageSize:imageSize options:options block:nil];
}
- (void)setImageWithURL:(NSURL *)url
placeholderImage:(UIImage *)placeholderImage
imageSize:(CGSize)imageSize
options:(AFImageRequestOptions)options
block:(void (^)(UIImage *image))block
{
if (!url) {
return;
}
@ -89,6 +106,10 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat
} else {
self.image = placeholderImage;
}
if (block) {
block(image);
}
}];
[[[self class] sharedImageRequestOperationQueue] addOperation:self.imageRequestOperation];