mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 14:45:21 +00:00
Simplify creation of Photos Framework NSURLs in ASMultiplexImageNode
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#import <AsyncDisplayKit/ASImageNode.h>
|
||||
#import <AsyncDisplayKit/ASImageProtocols.h>
|
||||
|
||||
#import <Photos/Photos.h>
|
||||
|
||||
@protocol ASMultiplexImageNodeDelegate;
|
||||
@protocol ASMultiplexImageNodeDataSource;
|
||||
@@ -98,6 +99,13 @@ typedef NS_ENUM(NSUInteger, ASMultiplexImageNodeErrorCode) {
|
||||
*/
|
||||
@property (nonatomic, readonly) id displayedImageIdentifier;
|
||||
|
||||
/**
|
||||
* @abstract The image manager that this image node should use when requesting images from the Photos framework. Defaults to `PHImageManager.defaultManager`.
|
||||
|
||||
* @see `+[NSURL URLWithAssetLocalIdentifier:targetSize:contentMode:options:]` below.
|
||||
*/
|
||||
@property (nonatomic, strong) PHImageManager *imageManager;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -195,11 +203,32 @@ didFinishDownloadingImageWithIdentifier:(id)imageIdentifier
|
||||
* @abstract An image URL for the specified identifier.
|
||||
* @param imageNode The sender.
|
||||
* @param imageIdentifier The identifier for the image that will be downloaded.
|
||||
* @discussion Supported URLs include assets-library, URLs converted from ASPhotosFrameworkImageRequest, HTTP, HTTPS, and FTP URLs. If the
|
||||
* image is already available to the data source, it should be provided via <[ASMultiplexImageNodeDataSource
|
||||
* @discussion Supported URLs include HTTP, HTTPS, AssetsLibrary, and FTP URLs as well as Photos framework URLs (see note).
|
||||
*
|
||||
* If the image is already available to the data source, it should be provided via <[ASMultiplexImageNodeDataSource
|
||||
* multiplexImageNode:imageForImageIdentifier:]> instead.
|
||||
* @returns An NSURL for the image identified by `imageIdentifier`, or nil if none is available.
|
||||
* @return An NSURL for the image identified by `imageIdentifier`, or nil if none is available.
|
||||
* @see `+[NSURL URLWithAssetLocalIdentifier:targetSize:contentMode:options:]` below.
|
||||
*/
|
||||
- (NSURL *)multiplexImageNode:(ASMultiplexImageNode *)imageNode URLForImageIdentifier:(id)imageIdentifier;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@interface NSURL (ASPhotosFrameworkURLs)
|
||||
|
||||
/**
|
||||
* @abstract Create an NSURL that specifies an image from the Photos framework.
|
||||
*
|
||||
* @discussion When implementing `-multiplexImageNode:URLForImageIdentifier:`, you can return a URL
|
||||
* created by this method and the image node will attempt to load the image from the Photos framework.
|
||||
* @note The `synchronous` flag in `options` is ignored.
|
||||
* @note The `Opportunistic` delivery mode is not supported and will be treated as `HighQualityFormat`.
|
||||
*/
|
||||
+ (NSURL *)URLWithAssetLocalIdentifier:(NSString *)assetLocalIdentifier
|
||||
targetSize:(CGSize)targetSize
|
||||
contentMode:(PHImageContentMode)contentMode
|
||||
options:(PHImageRequestOptions *)options;
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user