Remove Dailymotion paternity and move to joined paternity with Fraggle behind the Simple Design (SD) team name
This commit is contained in:
parent
8370d5dfaf
commit
a7734af511
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
||||||
Copyright (c) 2009 Dailymotion - Olivier Poitrey <rs@dailymotion.com>
|
Copyright (c) 2009 Olivier Poitrey <rs@dailymotion.com>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
20
README.md
20
README.md
|
@ -58,25 +58,25 @@ it, et voila!
|
||||||
How To Use It
|
How To Use It
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
### DMWebImageView as UIImageWeb Drop-In Replacement
|
### SDWebImageView as UIImageWeb Drop-In Replacement
|
||||||
|
|
||||||
Most common use is in conjunction with an UITableView:
|
Most common use is in conjunction with an UITableView:
|
||||||
|
|
||||||
- Place an UIImageView as a subview of your UITableViewCell in Interface Builder
|
- Place an UIImageView as a subview of your UITableViewCell in Interface Builder
|
||||||
- Set its class to DMImageView in the identity panel.
|
- Set its class to SDImageView in the identity panel.
|
||||||
- Optionally set an image from your bundle to this UIImageView, it will be used as a placeholder
|
- Optionally set an image from your bundle to this UIImageView, it will be used as a placeholder
|
||||||
image waiting for the real image to be downloaded.
|
image waiting for the real image to be downloaded.
|
||||||
- In your tableView:cellForRowAtIndexPath: UITableViewDataSource method, invoke the setImageWithURL:
|
- In your tableView:cellForRowAtIndexPath: UITableViewDataSource method, invoke the setImageWithURL:
|
||||||
method of the DMWebImage view with the URL of the image to download
|
method of the SDWebImage view with the URL of the image to download
|
||||||
|
|
||||||
Your done, everything will be handled for you, from parallel downloads to caching management.
|
Your done, everything will be handled for you, from parallel downloads to caching management.
|
||||||
|
|
||||||
### Asynchronous Image Downloader
|
### Asynchronous Image Downloader
|
||||||
|
|
||||||
It is possible to use the NSOperation based image downloader independently. Just create an instance
|
It is possible to use the NSOperation based image downloader independently. Just create an instance
|
||||||
of DMWebImageDownloader using its convenience constructor downloaderWithURL:target:action:.
|
of SDWebImageDownloader using its convenience constructor downloaderWithURL:target:action:.
|
||||||
|
|
||||||
downloader = [DMWebImageDownloader downloaderWithURL:url
|
downloader = [SDWebImageDownloader downloaderWithURL:url
|
||||||
target:self
|
target:self
|
||||||
action:@selector(downloadFinishedWithImage:)];
|
action:@selector(downloadFinishedWithImage:)];
|
||||||
|
|
||||||
|
@ -85,11 +85,11 @@ soon as the download of image will be completed (prepare not to be called from t
|
||||||
|
|
||||||
### Asynchronous Image Caching
|
### Asynchronous Image Caching
|
||||||
|
|
||||||
It is also possible to use the NSOperation based image cache store independently. DMImageCache
|
It is also possible to use the NSOperation based image cache store independently. SDImageCache
|
||||||
maintains a memory cache and an optional disk cache. Disk cache write operations are performed
|
maintains a memory cache and an optional disk cache. Disk cache write operations are performed
|
||||||
asynchronous so it doesn't add unnecessary latency to the UI.
|
asynchronous so it doesn't add unnecessary latency to the UI.
|
||||||
|
|
||||||
The DMImageCache class provides a singleton instance for convenience but you can create your own
|
The SDImageCache class provides a singleton instance for convenience but you can create your own
|
||||||
instance if you want to create separated cache namespaces.
|
instance if you want to create separated cache namespaces.
|
||||||
|
|
||||||
To lookup the cache, you use the imageForKey: method. If the method returns nil, it means the cache
|
To lookup the cache, you use the imageForKey: method. If the method returns nil, it means the cache
|
||||||
|
@ -97,15 +97,15 @@ doesn't currently own the image. You are thus responsible of generating and cach
|
||||||
key is an application unique identifier for the image to cache. It is generally the absolute URL of
|
key is an application unique identifier for the image to cache. It is generally the absolute URL of
|
||||||
the image.
|
the image.
|
||||||
|
|
||||||
UIImage *myCachedImage = [[DMImageCache sharedImageCache] imageFromKey:myCacheKey];
|
UIImage *myCachedImage = [[SDImageCache sharedImageCache] imageFromKey:myCacheKey];
|
||||||
|
|
||||||
By default DMImageCache will lookup the disk cache if an image can't be found in the memory cache.
|
By default SDImageCache will lookup the disk cache if an image can't be found in the memory cache.
|
||||||
You can prevent this from happening by calling the alternative method imageFromKey:fromDisk: with a
|
You can prevent this from happening by calling the alternative method imageFromKey:fromDisk: with a
|
||||||
negative second argument.
|
negative second argument.
|
||||||
|
|
||||||
To store an image into the cache, you use the storeImage:forKey: method:
|
To store an image into the cache, you use the storeImage:forKey: method:
|
||||||
|
|
||||||
[[DMImageCache sharedImageCache] storeImage:myImage forKey:myCacheKey];
|
[[SDImageCache sharedImageCache] storeImage:myImage forKey:myCacheKey];
|
||||||
|
|
||||||
By default, the image will be stored in memory cache as well as on disk cache (asynchronously). If
|
By default, the image will be stored in memory cache as well as on disk cache (asynchronously). If
|
||||||
you want only the memory cache, use the alternative method storeImage:forKey:toDisk: with a negative
|
you want only the memory cache, use the alternative method storeImage:forKey:toDisk: with a negative
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the DMWebImage package.
|
* This file is part of the SDWebImage package.
|
||||||
* (c) Dailymotion - Olivier Poitrey <rs@dailymotion.com>
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
||||||
*
|
*
|
||||||
* For the full copyright and license information, please view the LICENSE
|
* For the full copyright and license information, please view the LICENSE
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
|
@ -8,14 +8,14 @@
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
@interface DMImageCache : NSObject
|
@interface SDImageCache : NSObject
|
||||||
{
|
{
|
||||||
NSMutableDictionary *memCache;
|
NSMutableDictionary *memCache;
|
||||||
NSString *diskCachePath;
|
NSString *diskCachePath;
|
||||||
NSOperationQueue *cacheInQueue;
|
NSOperationQueue *cacheInQueue;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (DMImageCache *)sharedImageCache;
|
+ (SDImageCache *)sharedImageCache;
|
||||||
- (void)storeImage:(UIImage *)image forKey:(NSString *)key;
|
- (void)storeImage:(UIImage *)image forKey:(NSString *)key;
|
||||||
- (void)storeImage:(UIImage *)image forKey:(NSString *)key toDisk:(BOOL)toDisk;
|
- (void)storeImage:(UIImage *)image forKey:(NSString *)key toDisk:(BOOL)toDisk;
|
||||||
- (UIImage *)imageFromKey:(NSString *)key;
|
- (UIImage *)imageFromKey:(NSString *)key;
|
|
@ -1,19 +1,19 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the DMWebImage package.
|
* This file is part of the SDWebImage package.
|
||||||
* (c) Dailymotion - Olivier Poitrey <rs@dailymotion.com>
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
||||||
*
|
*
|
||||||
* For the full copyright and license information, please view the LICENSE
|
* For the full copyright and license information, please view the LICENSE
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import "DMImageCache.h"
|
#import "SDImageCache.h"
|
||||||
#import <CommonCrypto/CommonDigest.h>
|
#import <CommonCrypto/CommonDigest.h>
|
||||||
|
|
||||||
static NSInteger cacheMaxCacheAge = 60*60*24*7; // 1 week
|
static NSInteger cacheMaxCacheAge = 60*60*24*7; // 1 week
|
||||||
|
|
||||||
static DMImageCache *instance;
|
static SDImageCache *instance;
|
||||||
|
|
||||||
@implementation DMImageCache
|
@implementation SDImageCache
|
||||||
|
|
||||||
#pragma mark NSObject
|
#pragma mark NSObject
|
||||||
|
|
||||||
|
@ -81,11 +81,11 @@ static DMImageCache *instance;
|
||||||
|
|
||||||
#pragma mark ImageCache (class methods)
|
#pragma mark ImageCache (class methods)
|
||||||
|
|
||||||
+ (DMImageCache *)sharedImageCache
|
+ (SDImageCache *)sharedImageCache
|
||||||
{
|
{
|
||||||
if (instance == nil)
|
if (instance == nil)
|
||||||
{
|
{
|
||||||
instance = [[DMImageCache alloc] init];
|
instance = [[SDImageCache alloc] init];
|
||||||
}
|
}
|
||||||
|
|
||||||
return instance;
|
return instance;
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the DMWebImage package.
|
* This file is part of the SDWebImage package.
|
||||||
* (c) Dailymotion - Olivier Poitrey <rs@dailymotion.com>
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
||||||
*
|
*
|
||||||
* For the full copyright and license information, please view the LICENSE
|
* For the full copyright and license information, please view the LICENSE
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
@interface DMWebImageDownloader : NSOperation
|
@interface SDWebImageDownloader : NSOperation
|
||||||
{
|
{
|
||||||
NSURL *url;
|
NSURL *url;
|
||||||
id target;
|
id target;
|
|
@ -1,16 +1,16 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the DMWebImage package.
|
* This file is part of the SDWebImage package.
|
||||||
* (c) Dailymotion - Olivier Poitrey <rs@dailymotion.com>
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
||||||
*
|
*
|
||||||
* For the full copyright and license information, please view the LICENSE
|
* For the full copyright and license information, please view the LICENSE
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import "DMWebImageDownloader.h"
|
#import "SDWebImageDownloader.h"
|
||||||
|
|
||||||
static NSOperationQueue *downloadQueue;
|
static NSOperationQueue *downloadQueue;
|
||||||
|
|
||||||
@implementation DMWebImageDownloader
|
@implementation SDWebImageDownloader
|
||||||
|
|
||||||
@synthesize url, target, action;
|
@synthesize url, target, action;
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ static NSOperationQueue *downloadQueue;
|
||||||
|
|
||||||
+ (id)downloaderWithURL:(NSURL *)url target:(id)target action:(SEL)action
|
+ (id)downloaderWithURL:(NSURL *)url target:(id)target action:(SEL)action
|
||||||
{
|
{
|
||||||
DMWebImageDownloader *downloader = [[[DMWebImageDownloader alloc] init] autorelease];
|
SDWebImageDownloader *downloader = [[[SDWebImageDownloader alloc] init] autorelease];
|
||||||
downloader.url = url;
|
downloader.url = url;
|
||||||
downloader.target = target;
|
downloader.target = target;
|
||||||
downloader.action = action;
|
downloader.action = action;
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the DMWebImage package.
|
* This file is part of the SDWebImage package.
|
||||||
* (c) Dailymotion - Olivier Poitrey <rs@dailymotion.com>
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
||||||
*
|
*
|
||||||
* For the full copyright and license information, please view the LICENSE
|
* For the full copyright and license information, please view the LICENSE
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
|
@ -8,12 +8,12 @@
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
@class DMWebImageDownloader;
|
@class SDWebImageDownloader;
|
||||||
|
|
||||||
@interface DMWebImageView : UIImageView
|
@interface SDWebImageView : UIImageView
|
||||||
{
|
{
|
||||||
UIImage *placeHolderImage;
|
UIImage *placeHolderImage;
|
||||||
DMWebImageDownloader *downloader;
|
SDWebImageDownloader *downloader;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setImageWithURL:(NSURL *)url;
|
- (void)setImageWithURL:(NSURL *)url;
|
|
@ -1,16 +1,16 @@
|
||||||
/*
|
/*
|
||||||
* This file is part of the DMWebImage package.
|
* This file is part of the SDWebImage package.
|
||||||
* (c) Dailymotion - Olivier Poitrey <rs@dailymotion.com>
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
||||||
*
|
*
|
||||||
* For the full copyright and license information, please view the LICENSE
|
* For the full copyright and license information, please view the LICENSE
|
||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import "DMWebImageView.h"
|
#import "SDWebImageView.h"
|
||||||
#import "DMImageCache.h"
|
#import "SDImageCache.h"
|
||||||
#import "DMWebImageDownloader.h"
|
#import "SDWebImageDownloader.h"
|
||||||
|
|
||||||
@implementation DMWebImageView
|
@implementation SDWebImageView
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
self.image = placeHolderImage;
|
self.image = placeHolderImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
UIImage *cachedImage = [[DMImageCache sharedImageCache] imageFromKey:[url absoluteString]];
|
UIImage *cachedImage = [[SDImageCache sharedImageCache] imageFromKey:[url absoluteString]];
|
||||||
|
|
||||||
if (cachedImage)
|
if (cachedImage)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
downloader = [[DMWebImageDownloader downloaderWithURL:url target:self action:@selector(downloadFinishedWithImage:)] retain];
|
downloader = [[SDWebImageDownloader downloaderWithURL:url target:self action:@selector(downloadFinishedWithImage:)] retain];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
self.image = anImage;
|
self.image = anImage;
|
||||||
|
|
||||||
// Store the image in the cache
|
// Store the image in the cache
|
||||||
[[DMImageCache sharedImageCache] storeImage:anImage forKey:[downloader.url absoluteString]];
|
[[SDImageCache sharedImageCache] storeImage:anImage forKey:[downloader.url absoluteString]];
|
||||||
|
|
||||||
// Free the downloader
|
// Free the downloader
|
||||||
[downloader release];
|
[downloader release];
|
Loading…
Reference in New Issue