Commit Graph

2631 Commits

Author SHA1 Message Date
Olivier Poitrey dffff12607 If nil is given as URL to setImageWithURL:, set the image to the placeholder image (or nil if no placeholder)
This is the recommanded way clear an image for reuse (as a UITableViewCell for instance). Calling setImageWithURL:
with nil URL will have the effect to cancel an eventual currently in progress download of a thumbnail for this UIImageView.
Affecting the image property directly won't have this effect and may lead to image being re-affected once download is completed.
2010-09-16 13:02:33 +02:00
Olivier Poitrey d2dc4cbbac Do not convert images to JPEG when stored to disk for caching
This saves CPU and memory in all cases and alpha channel / image clearness if orignal format was PNG or GIF.
2010-08-29 03:22:20 +02:00
Olivier Poitrey 7f7dfbecd6 Ensure the downloader is started from the main thread 2010-06-21 01:30:12 +02:00
Olivier Poitrey 65549dec10 Better nil url handling 2010-06-12 16:37:47 +02:00
Olivier Poitrey 7350e1fa03 Fix english in new method naming 2010-06-11 16:32:35 +02:00
Olivier Poitrey 1b0cf3a3fb Add a compile time condition in order to compile with Base SDK pre iOS4 2010-06-11 15:14:42 +02:00
Olivier Poitrey d128c27cad Add `cancelCurrentImageLoading` method to UIImageView+WebCache 2010-06-11 15:06:04 +02:00
Olivier Poitrey 8cc6acb502 Fix typos in the README file (thanks Laurent Etiemble) 2010-06-11 14:40:44 +02:00
Olivier Poitrey 1cae0c4021 Set image to nil when trying to load nil URL 2010-06-11 06:17:54 +02:00
Olivier Poitrey e0e369659e Replace the NSOperation based downloader by a simple async NSURLConnection (read-on to understand why)
I finally found the reason behind the download not started while UITableView is manipulated: the default NSURLConnection runloop mode. Its default mode is NSEventTrackingRunLoopMode which is interrupted by UI events. Changing default NSURLConnection runloop mode to NSRunLoopCommonModes just fix this good old responsiveness issue.

I thus decided to replace the current NSOperation based implementation by this finding, as NSOperation is far more expensive than simple async connections. Additionally, moving aways from NSOperation here fix an odd lagging issue with iOS 4, an issue I can't explain at the moment.

Note that `SDWebImageDownloader`'s `setMaxConcurrentDownloads:` method is now a no-op as I didn't implemented the NSOperation queuing system with async connections. I don't think it still necessary as thread-less async connectaions are very lightweight. If you think there is a real need of this, I may reconsider and implement it in the future. In the meantime, this method does nothing and its usage is declared as deprecated.
2010-06-09 04:36:18 +02:00
Olivier Poitrey 467be16671 Fix some iOS 4.0 deprecated method use 2010-06-08 14:44:03 +02:00
Olivier Poitrey 4fedcee49e Add multitasking support by cleaning the memory when app is sent to background 2010-06-08 14:38:55 +02:00
Olivier Poitrey 58a24963b5 Set references to nil after release in dealloc methods 2010-06-02 01:37:39 +02:00
Henrik N 1753b2d844 Fix potential crasher in SDImageCache. Don't rely on memory cache to retain a returned value. 2010-03-20 20:13:27 +01:00
Olivier Poitrey 439c01527f Ensure URL caching is disabled in order to prevent from duplicate caching 2010-03-17 17:43:12 +01:00
Olivier Poitrey a230f6aba8 Handle nil image urls nicely 2009-12-31 14:12:50 +01:00
Olivier Poitrey 0bdd448ca8 Fix some warnings when most warnings are activated 2009-11-11 15:43:11 +01:00
Olivier Poitrey 79c5fa177d Fix the name of the SDWebImageManagerDelegate protocol 2009-09-28 23:56:24 +02:00
Olivier Poitrey 2fa0626aaa Remove the dirty hack of storing the helper into the first subview of the UIImageView and prevent duplicate downloads of the same URL
The helper (now called manager) is now handling the mapping between the UIImageView and its downloader.
This way we don't polute the UIImageView, and don't remove its capability to have subviews.
This change removes the automatic handling of image placeholder. The placeholder image can
be passed as second argument of setImageWithURL:placeholderImage:
The manager now handle duplicate downloads for the same URL gracefuly by sharing the same downloader
for all requestors.
Finaly, the manager handles URLs which can't create an image (HTTP error or invalid format) by flagging
them so it won't retry to download them again and again.
2009-09-24 02:35:14 +02:00
Olivier Poitrey 972c304957 Replace the SDWebImageView by an UIImageView category make the integration even simpler 2009-09-23 03:23:08 +02:00
Olivier Poitrey b2a3d31557 Use user cache directory instead of ducment directory to prevent from cache to be synced back and forth in iTunes 2009-09-22 17:13:56 +02:00
Olivier Poitrey a7734af511 Remove Dailymotion paternity and move to joined paternity with Fraggle behind the Simple Design (SD) team name 2009-09-21 19:36:47 +02:00
Olivier Poitrey 8370d5dfaf Add the Fraggle's storry to the Motivation section 2009-09-21 16:03:45 +02:00
Olivier Poitrey 57b0dae146 Added "Motivation" chapter 2009-09-21 05:34:04 +02:00
Olivier Poitrey 891b957ba8 Add some example about using downloader and image cache store components independently + general doc enhancement 2009-09-21 04:46:34 +02:00
Olivier Poitrey 16431cb655 Remove unnecessary coupling between DMWebImageDownloader and DMImageCache 2009-09-21 04:03:02 +02:00
Olivier Poitrey 2177028001 Update TODO 2009-09-21 03:45:10 +02:00
Olivier Poitrey 6d1eaa4c88 Split DMWebImageDownloader from DMWebImageView, and refactor so each class maintain its own operation 2009-09-21 03:45:04 +02:00
Olivier Poitrey 89b45c3f85 Add licensing information 2009-09-19 22:24:03 +02:00
Olivier Poitrey 37258addc2 Quick and dirty documentation 2009-09-19 21:14:40 +02:00
Olivier Poitrey 9cc8f904ab Initial revision 2009-09-19 20:45:42 +02:00