Twitter Image Pipeline is a robust and performant image loading and caching framework for iOS clients
Update WebP Codec (includes fixing WebP animations)
Bump version to support CocoaPod subspecs for WebP and MP4 codecs
TIPXWebPCodec
also supports progressive loading (rendering the first frame while more data is loading)
clearMemoryCachesOnApplicationBackgroundEnabled
is YES
TIPImageViewFetchHelper
when disappearanceBehavior
is TIPImageViewDisappearanceBehaviorUnload
or TIPImageViewDisappearanceBehaviorReplaceWithPlaceholder
TIPImageFetchProgressiveLoadingPolicy
class methods with C functions
@interface
have the same name as an @protocol
TIPImageFetchSkipStoringToRenderedCache
to TIPImageFetchOptions
TIPImageViewDisappearanceBehaviorUnload
to TIPImageViewDisappearanceBehavior
fetchView
image to nil
on disappearanceTIPImageViewFetchHelper
for displaying images!TIPImageViewDisappearanceBehaviorReplaceWithPlaceholder
to TIPImageViewDisappearanceBehavior
fetchView
image to a placeholder (low resolution) version on disappearance, which will be replace with the full image on visible returnTIPImageViewDisappearanceBehaviorUnload
but with the compromise of keeping a little more RAM for a placeholder to avoid UI situations that could yield an empty image view temporarily as the full image is decoded (notably for large images or slow devices)TIPImageViewFetchHelper
class' fetchDisappearanceBehavior
to disappearanceBehavior
shouldTreatApplicationBackgroundAsViewDisappearance
property to TIPImageViewFetchHelper
BOOL
property will opt the fetch helper into using the disappearance behavior when the app backgroundsYES
for your large image views!direct
support for Objective-C code and eliminate PRIVATE_SELF
C function pattern
PRIVATE_SELF
C functions (don't need to check self != nil
)self->_ivar
access in the direct methods (can stick with just using _ivar
)TIPError.h
to be much more Swift compatibleTIPXWebPCodec
ImageIO
based codecs, but not the extended codecs (WebP
and MP4
)...yet2.13
to 2.20
targetDimensions
and targetContentMode
argumentsWEBP_README.md
TIPImageFetchHelper
will now register for all image cache updates and filter on observation vs registering against specific pipelines, which avoids register/unregister locking performance impactTIPDetectImageTypeFromFile(...)
for efficient and effective image type detection from a fileUIImagePNGRepresentation
and UIImageJPEGRepresentation
-[UIImage tip_PNGRepresentation]
and -[UIImage tip_JPEGRepresentationWithQuality:progressive:]
-[UIImage tip_canLosslesslyEncodeUsingIndexedPaletteWithOptions:]
[TIPGlobalConfiguration defaultInterpolationQuality]
CGInterpolationQualityDefault
which is same behavior as before[UIImage tip_scaledImageWithTargetDimensions:contentMode:interpolationQuality:decode:]
[TIPImageFetchDelegate tip_imageFetchOperation:didLoadDirtyPreviewImage:]
support
Content-Length
header), TIP now posts TIPProblemImageDownloadedWithUnnecessaryError
problemUIImage
category0
bytes would not completely disable it as documented, fixedTIPImageViewFetchHelper
by supporting TIPImageContainer
as well as UIImage
UIView
that adopts TIPImageFetchable
with tip_fetchedImageContainer
that can animate the provided TIPImageContainer
TIPImageFetchable
tip_fetchedImageContainer
as optional propertytip_fetchedImage
as optionalTIPImageFetchable
TIPImageFetchableHasImage
TIPImageFetchableGetImage
and TIPImageFetchableGetImageContainer
TIPImageFetchableSetImage
and TIPImageFetchableSetImageContainer
TIPImageViewFetchHelper
setImageContainerAsIfLoaded:
setImageContainerAsIfPlaceholder:
TIPImageViewFetchHelperDataSource
tip_imageContainerForFetchHelper:
TIPImageViewFetchHelperDelegate
tip_fetchHelper:didUpdateDisplayedImageContainer:fromSourceDimensions:isFinal:
tip_fetchHelper:didUpdateDisplayedImage:fromSourceDimensions:isFinal:
tip_fetchHelper:shouldReloadAfterDifferentFetchCompletedWithImageContainer:dimensions:identifier:URL:treatedAsPlaceholder:manuallyStored:
tip_fetchHelper:shouldReloadAfterDifferentFetchCompletedWithImage:dimensions:identifier:URL:treatedAsPlaceholder:manuallyStored:
tip_fetchedImage
in fetch helper so that
the implementer of tip_fetchedImage
can query the current state
of the fetch helper at the time the update happens. Can help
with animations.