add: 1. expose animation player 2. add playback mode enum
This commit is contained in:
parent
88b3ba211c
commit
32d2a79cf8
|
@ -10,6 +10,25 @@
|
|||
#import "SDWebImageCompat.h"
|
||||
#import "SDImageCoder.h"
|
||||
|
||||
typedef NS_ENUM(NSUInteger, SDAnimatedImagePlaybackMode) {
|
||||
/**
|
||||
* From first to last frame and stop or next loop.
|
||||
*/
|
||||
SDAnimatedImagePlaybackModeNormal = 0,
|
||||
/**
|
||||
* From last frame to first frame and stop or next loop.
|
||||
*/
|
||||
SDAnimatedImagePlaybackModeReverse,
|
||||
/**
|
||||
* From first frame to last frame and reverse again, like reciprocating.
|
||||
*/
|
||||
SDAnimatedImagePlaybackModeBounce,
|
||||
/**
|
||||
* From last frame to first frame and reverse again, like reversed reciprocating.
|
||||
*/
|
||||
SDAnimatedImagePlaybackModeReversedBounce,
|
||||
};
|
||||
|
||||
/// A player to control the playback of animated image, which can be used to drive Animated ImageView or any rendering usage, like CALayer/WatchKit/SwiftUI rendering.
|
||||
@interface SDAnimatedImagePlayer : NSObject
|
||||
|
||||
|
@ -37,6 +56,9 @@
|
|||
/// `< 0.0` is not supported currently and stop animation. (may support reverse playback in the future)
|
||||
@property (nonatomic, assign) double playbackRate;
|
||||
|
||||
/// The animation playback mode. Default mode is SDAnimatedImagePlaybackModeNormal.
|
||||
@property (nonatomic, assign) SDAnimatedImagePlaybackMode playbackMode;
|
||||
|
||||
/// Provide a max buffer size by bytes. This is used to adjust frame buffer count and can be useful when the decoding cost is expensive (such as Animated WebP software decoding). Default is 0.
|
||||
/// `0` means automatically adjust by calculating current memory usage.
|
||||
/// `1` means without any buffer cache, each of frames will be decoded and then be freed after rendering. (Lowest Memory and Highest CPU)
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#if SD_UIKIT || SD_MAC
|
||||
|
||||
#import "SDAnimatedImage.h"
|
||||
#import "SDAnimatedImagePlayer.h"
|
||||
|
||||
/**
|
||||
A drop-in replacement for UIImageView/NSImageView, you can use this for animated image rendering.
|
||||
|
@ -88,6 +89,11 @@
|
|||
*/
|
||||
@property (nonatomic, assign) BOOL autoPlayAnimatedImage;
|
||||
|
||||
/**
|
||||
The animation player.
|
||||
*/
|
||||
@property (nonatomic, strong, readonly, nullable) SDAnimatedImagePlayer *player;
|
||||
|
||||
/**
|
||||
You can specify a runloop mode to let it rendering.
|
||||
Default is NSRunLoopCommonModes on multi-core device, NSDefaultRunLoopMode on single-core device
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
|
||||
#if SD_UIKIT || SD_MAC
|
||||
|
||||
#import "SDAnimatedImagePlayer.h"
|
||||
#import "UIImage+Metadata.h"
|
||||
#import "NSImage+Compatibility.h"
|
||||
#import "SDInternalMacros.h"
|
||||
|
@ -31,7 +30,7 @@
|
|||
@property (nonatomic, assign, readwrite) NSUInteger currentLoopCount;
|
||||
@property (nonatomic, assign) BOOL shouldAnimate;
|
||||
@property (nonatomic, assign) BOOL isProgressive;
|
||||
@property (nonatomic,strong) SDAnimatedImagePlayer *player; // The animation player.
|
||||
@property (nonatomic, strong, readwrite) SDAnimatedImagePlayer *player; // The animation player.
|
||||
@property (nonatomic) CALayer *imageViewLayer; // The actual rendering layer.
|
||||
|
||||
@end
|
||||
|
|
Loading…
Reference in New Issue