TNLExample/TNLXImageSupport.h (38 lines of code) (raw):

// // TNLXImageSupport.h // TwitterNetworkLayer // // Created on 8/18/14. // Copyright © 2020 Twitter. All rights reserved. // #import <TwitterNetworkLayer/TwitterNetworkLayer.h> #import "TAPIModel.h" #if TARGET_OS_IOS @import UIKit; @interface TNLRequestOperationQueue (Images) + (instancetype)tnlx_imageRequestOperationQueue; @end @interface TNLRequestConfiguration (Images) + (instancetype)tnlx_imageRequestConfiguration; @end @interface TNLXImageRequest : NSObject <TNLRequest> @property (nonatomic, readonly) NSURL *URL; @property (nonatomic, readonly) CGSize dimensions; @property (nonatomic, readonly) UIViewContentMode contentMode; + (dispatch_queue_t)backgroundQueue; + (instancetype)imageRequestWithURL:(NSURL *)url; + (instancetype)imageRequestWithURL:(NSURL *)url desiredDimensions:(CGSize)dimensions contentMode:(UIViewContentMode)contentMode; - (instancetype)initWithURL:(NSURL *)url desiredDimensions:(CGSize)dimensions contentMode:(UIViewContentMode)contentMode NS_DESIGNATED_INITIALIZER; @end @interface TNLXImageResponse : TNLResponse @property (nonatomic, readonly) UIImage *image; @property (nonatomic, readonly) CGSize requestImageDimensions; @property (nonatomic, readonly) UIViewContentMode requestContentMode; @property (nonatomic, readonly) CGSize scaledImageDimensions; // == image.size * image.scale @property (nonatomic, readonly) CGSize rawImageDimensions; @end FOUNDATION_EXTERN CGSize TNLXSizeScale(CGSize sourceSize, CGSize desiredSize, UIViewContentMode contentMode) __attribute__((const)); FOUNDATION_EXTERN NSURL *TNLXSelectBestImageURL(id<TAPIImageEntityModel> model, CGSize targetDimensions, UIViewContentMode targetContentMode); @interface TNLXImageView : UIImageView @property (nonatomic) BOOL loaded; @property (nonatomic) id<TAPIImageEntityModel> imageEntity; @property (nonatomic, readonly) NSOperation *imageLoadOperation; @end #endif