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:
parent
9e107d6a7b
commit
1dad3cb336
2 changed files with 38 additions and 5 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -59,16 +59,33 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
@ -76,7 +93,7 @@ static NSString * const kUIImageViewImageRequestObjectKey = @"imageRequestOperat
|
||||||
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0];
|
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0];
|
||||||
[request setHTTPShouldHandleCookies:NO];
|
[request setHTTPShouldHandleCookies:NO];
|
||||||
[request setHTTPShouldUsePipelining:YES];
|
[request setHTTPShouldUsePipelining:YES];
|
||||||
|
|
||||||
UIImage *cachedImage = [[AFImageCache sharedImageCache] cachedImageForRequest:request imageSize:imageSize options:options];
|
UIImage *cachedImage = [[AFImageCache sharedImageCache] cachedImageForRequest:request imageSize:imageSize options:options];
|
||||||
if (cachedImage) {
|
if (cachedImage) {
|
||||||
self.image = cachedImage;
|
self.image = cachedImage;
|
||||||
|
|
@ -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];
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue