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) @interface UIImageView (AFNetworking)
- (void)setImageWithURL:(NSURL *)url; - (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 @end

View file

@ -60,15 +60,32 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat
return _imageRequestOperationQueue; return _imageRequestOperationQueue;
} }
#pragma mark -
- (void)setImageWithURL:(NSURL *)url { - (void)setImageWithURL:(NSURL *)url {
[self setImageWithURL:url placeholderImage:nil]; [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]; [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) { if (!url) {
return; return;
} }
@ -89,6 +106,10 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat
} else { } else {
self.image = placeholderImage; self.image = placeholderImage;
} }
if (block) {
block(image);
}
}]; }];
[[[self class] sharedImageRequestOperationQueue] addOperation:self.imageRequestOperation]; [[[self class] sharedImageRequestOperationQueue] addOperation:self.imageRequestOperation];