123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- /*
- * This file is part of the SDWebImage package.
- * (c) Olivier Poitrey <rs@dailymotion.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- #import "SDWebImageCompat.h"
- #import "SDWebImageManager.h"
- /**
- * Integrates SDWebImage async downloading and caching of remote images with UIImageView.
- *
- * Usage with a UITableViewCell sub-class:
- *
- * @code
- #import <SDWebImage/UIImageView+WebCache.h>
- ...
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- static NSString *MyIdentifier = @"MyIdentifier";
-
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
-
- if (cell == nil) {
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
- }
-
- // Here we use the provided sd_setImageWithURL: method to load the web image
- // Ensure you use a placeholder image otherwise cells will be initialized with no image
- [cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"]
- placeholderImage:[UIImage imageNamed:@"placeholder"]];
-
- cell.textLabel.text = @"My Text";
- return cell;
- }
- * @endcode
- */
- @interface UIImageView (WebCache)
- /**
- * Set the imageView `image` with an `url`.
- *
- * The download is asynchronous and cached.
- *
- * @param url The url for the image.
- */
- - (void)sd_setImageWithURL:(nullable NSURL *)url NS_REFINED_FOR_SWIFT;
- /**
- * Set the imageView `image` with an `url` and a placeholder.
- *
- * The download 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 sd_setImageWithURL:placeholderImage:options:
- */
- - (void)sd_setImageWithURL:(nullable NSURL *)url
- placeholderImage:(nullable UIImage *)placeholder NS_REFINED_FOR_SWIFT;
- /**
- * Set the imageView `image` with an `url`, placeholder and custom options.
- *
- * The download 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)sd_setImageWithURL:(nullable NSURL *)url
- placeholderImage:(nullable UIImage *)placeholder
- options:(SDWebImageOptions)options NS_REFINED_FOR_SWIFT;
- /**
- * Set the imageView `image` with an `url`.
- *
- * The download is asynchronous and cached.
- *
- * @param url The url for the image.
- * @param completedBlock A block called when operation has been completed. This block has no return value
- * and takes the requested UIImage as first parameter. In case of error the image parameter
- * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
- * indicating if the image was retrieved from the local cache or from the network.
- * The fourth parameter is the original image url.
- */
- - (void)sd_setImageWithURL:(nullable NSURL *)url
- completed:(nullable SDExternalCompletionBlock)completedBlock;
- /**
- * Set the imageView `image` with an `url`, placeholder.
- *
- * The download 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 completedBlock A block called when operation has been completed. This block has no return value
- * and takes the requested UIImage as first parameter. In case of error the image parameter
- * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
- * indicating if the image was retrieved from the local cache or from the network.
- * The fourth parameter is the original image url.
- */
- - (void)sd_setImageWithURL:(nullable NSURL *)url
- placeholderImage:(nullable UIImage *)placeholder
- completed:(nullable SDExternalCompletionBlock)completedBlock NS_REFINED_FOR_SWIFT;
- /**
- * Set the imageView `image` with an `url`, placeholder and custom options.
- *
- * The download 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 completedBlock A block called when operation has been completed. This block has no return value
- * and takes the requested UIImage as first parameter. In case of error the image parameter
- * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
- * indicating if the image was retrieved from the local cache or from the network.
- * The fourth parameter is the original image url.
- */
- - (void)sd_setImageWithURL:(nullable NSURL *)url
- placeholderImage:(nullable UIImage *)placeholder
- options:(SDWebImageOptions)options
- completed:(nullable SDExternalCompletionBlock)completedBlock;
- /**
- * Set the imageView `image` with an `url`, placeholder and custom options.
- *
- * The download 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 progressBlock A block called while image is downloading
- * @note the progress block is executed on a background queue
- * @param completedBlock A block called when operation has been completed. This block has no return value
- * and takes the requested UIImage as first parameter. In case of error the image parameter
- * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
- * indicating if the image was retrieved from the local cache or from the network.
- * The fourth parameter is the original image url.
- */
- - (void)sd_setImageWithURL:(nullable NSURL *)url
- placeholderImage:(nullable UIImage *)placeholder
- options:(SDWebImageOptions)options
- progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
- completed:(nullable SDExternalCompletionBlock)completedBlock;
- /**
- * Set the imageView `image` with an `url` and custom options. The placeholder image is from previous cached image and will use the provided one instead if the query failed.
- * This method was designed to ensure that placeholder and query cache process happened in the same runloop to avoid flashing on cell during two `setImage:` call. But it's really misunderstanding and deprecated.
- * This can be done by using `sd_setImageWithURL:` with `SDWebImageQueryDiskSync`. But take care that if the memory cache missed, query disk cache synchronously may reduce the frame rate
- *
- * The download 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 progressBlock A block called while image is downloading
- * @note the progress block is executed on a background queue
- * @param completedBlock A block called when operation has been completed. This block has no return value
- * and takes the requested UIImage as first parameter. In case of error the image parameter
- * is nil and the second parameter may contain an NSError. The third parameter is a Boolean
- * indicating if the image was retrieved from the local cache or from the network.
- * The fourth parameter is the original image url.
- * @deprecated consider using `SDWebImageQueryDiskSync` options with `sd_setImageWithURL:` instead
- */
- - (void)sd_setImageWithPreviousCachedImageWithURL:(nullable NSURL *)url
- placeholderImage:(nullable UIImage *)placeholder
- options:(SDWebImageOptions)options
- progress:(nullable SDWebImageDownloaderProgressBlock)progressBlock
- completed:(nullable SDExternalCompletionBlock)completedBlock __deprecated_msg("This method is misunderstanding and deprecated, consider using `SDWebImageQueryDiskSync` options with `sd_setImageWithURL:` instead");
- #if SD_UIKIT
- #pragma mark - Animation of multiple images
- /**
- * Download an array of images and starts them in an animation loop
- *
- * @param arrayOfURLs An array of NSURL
- */
- - (void)sd_setAnimationImagesWithURLs:(nonnull NSArray<NSURL *> *)arrayOfURLs;
- - (void)sd_cancelCurrentAnimationImagesLoad;
- #endif
- @end
|