Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add MKAnnotationView+WebCache category (fix #78)
- Loading branch information
Olivier Poitrey
committed
Mar 14, 2012
1 parent
580a90d
commit 1cf1703
Showing
3 changed files
with
173 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
// | ||
// MKAnnotationView+WebCache.h | ||
// SDWebImage | ||
// | ||
// Created by Olivier Poitrey on 14/03/12. | ||
// Copyright (c) 2012 Dailymotion. All rights reserved. | ||
// | ||
|
||
#import "MapKit/MapKit.h" | ||
#import "SDWebImageCompat.h" | ||
#import "SDWebImageManagerDelegate.h" | ||
#import "SDWebImageManager.h" | ||
|
||
@interface MKAnnotationView (WebCache) <SDWebImageManagerDelegate> | ||
|
||
/** | ||
* Set the imageView `image` with an `url`. | ||
* | ||
* The downloand is asynchronous and cached. | ||
* | ||
* @param url The url for the image. | ||
*/ | ||
- (void)setImageWithURL:(NSURL *)url; | ||
|
||
/** | ||
* Set the imageView `image` with an `url` and a placeholder. | ||
* | ||
* The downloand is asynchronous and cached. | ||
* | ||
* @param url The url for the image. | ||
* @param placeholder The image to be set initially, until the image request finishes. | ||
* @see setImageWithURL:placeholderImage:options: | ||
*/ | ||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder; | ||
|
||
/** | ||
* Set the imageView `image` with an `url`, placeholder and custom options. | ||
* | ||
* The downloand is asynchronous and cached. | ||
* | ||
* @param url The url for the image. | ||
* @param placeholder The image to be set initially, until the image request finishes. | ||
* @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values. | ||
*/ | ||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options; | ||
|
||
#if NS_BLOCKS_AVAILABLE | ||
/** | ||
* Set the imageView `image` with an `url`. | ||
* | ||
* The downloand is asynchronous and cached. | ||
* | ||
* @param url The url for the image. | ||
* @param success A block to be executed when the image request succeed This block has no return value and takes the retrieved image as argument. | ||
* @param failure A block object to be executed when the image request failed. This block has no return value and takes the error object describing the network or parsing error that occurred (may be nil). | ||
*/ | ||
- (void)setImageWithURL:(NSURL *)url success:(void (^)(UIImage *image))success failure:(void (^)(NSError *error))failure; | ||
|
||
/** | ||
* Set the imageView `image` with an `url`, placeholder. | ||
* | ||
* The downloand is asynchronous and cached. | ||
* | ||
* @param url The url for the image. | ||
* @param placeholder The image to be set initially, until the image request finishes. | ||
* @param success A block to be executed when the image request succeed This block has no return value and takes the retrieved image as argument. | ||
* @param failure A block object to be executed when the image request failed. This block has no return value and takes the error object describing the network or parsing error that occurred (may be nil). | ||
*/ | ||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder success:(void (^)(UIImage *image))success failure:(void (^)(NSError *error))failure; | ||
|
||
/** | ||
* Set the imageView `image` with an `url`, placeholder and custom options. | ||
* | ||
* The downloand is asynchronous and cached. | ||
* | ||
* @param url The url for the image. | ||
* @param placeholder The image to be set initially, until the image request finishes. | ||
* @param options The options to use when downloading the image. @see SDWebImageOptions for the possible values. | ||
* @param success A block to be executed when the image request succeed This block has no return value and takes the retrieved image as argument. | ||
* @param failure A block object to be executed when the image request failed. This block has no return value and takes the error object describing the network or parsing error that occurred (may be nil). | ||
*/ | ||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options success:(void (^)(UIImage *image))success failure:(void (^)(NSError *error))failure; | ||
#endif | ||
|
||
/** | ||
* Cancel the current download | ||
*/ | ||
- (void)cancelCurrentImageLoad; | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
// | ||
// MKAnnotationView+WebCache.m | ||
// SDWebImage | ||
// | ||
// Created by Olivier Poitrey on 14/03/12. | ||
// Copyright (c) 2012 Dailymotion. All rights reserved. | ||
// | ||
|
||
#import "MKAnnotationView+WebCache.h" | ||
|
||
@implementation MKAnnotationView (WebCache) | ||
|
||
- (void)setImageWithURL:(NSURL *)url | ||
{ | ||
[self setImageWithURL:url placeholderImage:nil]; | ||
} | ||
|
||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder | ||
{ | ||
[self setImageWithURL:url placeholderImage:placeholder options:0]; | ||
} | ||
|
||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options | ||
{ | ||
SDWebImageManager *manager = [SDWebImageManager sharedManager]; | ||
|
||
// Remove in progress downloader from queue | ||
[manager cancelForDelegate:self]; | ||
|
||
self.image = placeholder; | ||
|
||
if (url) | ||
{ | ||
[manager downloadWithURL:url delegate:self options:options]; | ||
} | ||
} | ||
|
||
#if NS_BLOCKS_AVAILABLE | ||
- (void)setImageWithURL:(NSURL *)url success:(void (^)(UIImage *image))success failure:(void (^)(NSError *error))failure; | ||
{ | ||
[self setImageWithURL:url placeholderImage:nil success:success failure:failure]; | ||
} | ||
|
||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder success:(void (^)(UIImage *image))success failure:(void (^)(NSError *error))failure; | ||
{ | ||
[self setImageWithURL:url placeholderImage:placeholder options:0 success:success failure:failure]; | ||
} | ||
|
||
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options success:(void (^)(UIImage *image))success failure:(void (^)(NSError *error))failure; | ||
{ | ||
SDWebImageManager *manager = [SDWebImageManager sharedManager]; | ||
|
||
// Remove in progress downloader from queue | ||
[manager cancelForDelegate:self]; | ||
|
||
self.image = placeholder; | ||
|
||
if (url) | ||
{ | ||
[manager downloadWithURL:url delegate:self options:options success:success failure:failure]; | ||
} | ||
} | ||
#endif | ||
|
||
- (void)cancelCurrentImageLoad | ||
{ | ||
[[SDWebImageManager sharedManager] cancelForDelegate:self]; | ||
} | ||
|
||
- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image | ||
{ | ||
self.image = image; | ||
} | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters