From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/YYImage/YYImage/YYAnimatedImageView.h | 125 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 125 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYImage/YYImage/YYAnimatedImageView.h b/screendisplay/Pods/YYImage/YYImage/YYAnimatedImageView.h new file mode 100755 index 0000000..e70a654 --- /dev/null +++ b/screendisplay/Pods/YYImage/YYImage/YYAnimatedImageView.h @@ -0,0 +1,125 @@ +// +// YYAnimatedImageView.h +// YYImage <https://github.com/ibireme/YYImage> +// +// Created by ibireme on 14/10/19. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import <UIKit/UIKit.h> + +NS_ASSUME_NONNULL_BEGIN + +/** + An image view for displaying animated image. + + @discussion It is a fully compatible `UIImageView` subclass. + If the `image` or `highlightedImage` property adopt to the `YYAnimatedImage` protocol, + then it can be used to play the multi-frame animation. The animation can also be + controlled with the UIImageView methods `-startAnimating`, `-stopAnimating` and `-isAnimating`. + + This view request the frame data just in time. When the device has enough free memory, + this view may cache some or all future frames in an inner buffer for lower CPU cost. + Buffer size is dynamically adjusted based on the current state of the device memory. + + Sample Code: + + // ani@3x.gif + YYImage *image = [YYImage imageNamed:@"ani"]; + YYAnimatedImageView *imageView = [YYAnimatedImageView alloc] initWithImage:image]; + [view addSubView:imageView]; + */ +@interface YYAnimatedImageView : UIImageView + +/** + If the image has more than one frame, set this value to `YES` will automatically + play/stop the animation when the view become visible/invisible. + + The default value is `YES`. + */ +@property (nonatomic) BOOL autoPlayAnimatedImage; + +/** + Index of the currently displayed frame (index from 0). + + Set a new value to this property will cause to display the new frame immediately. + If the new value is invalid, this method has no effect. + + You can add an observer to this property to observe the playing status. + */ +@property (nonatomic) NSUInteger currentAnimatedImageIndex; + +/** + Whether the image view is playing animation currently. + + You can add an observer to this property to observe the playing status. + */ +@property (nonatomic, readonly) BOOL currentIsPlayingAnimation; + +/** + The animation timer's runloop mode, default is `NSRunLoopCommonModes`. + + Set this property to `NSDefaultRunLoopMode` will make the animation pause during + UIScrollView scrolling. + */ +@property (nonatomic, copy) NSString *runloopMode; + +/** + The max size (in bytes) for inner frame buffer size, default is 0 (dynamically). + + When the device has enough free memory, this view will request and decode some or + all future frame image into an inner buffer. If this property's value is 0, then + the max buffer size will be dynamically adjusted based on the current state of + the device free memory. Otherwise, the buffer size will be limited by this value. + + When receive memory warning or app enter background, the buffer will be released + immediately, and may grow back at the right time. + */ +@property (nonatomic) NSUInteger maxBufferSize; + +@end + + + +/** + The YYAnimatedImage protocol declares the required methods for animated image + display with YYAnimatedImageView. + + Subclass a UIImage and implement this protocol, so that instances of that class + can be set to YYAnimatedImageView.image or YYAnimatedImageView.highlightedImage + to display animation. + + See `YYImage` and `YYFrameImage` for example. + */ +@protocol YYAnimatedImage <NSObject> +@required +/// Total animated frame count. +/// It the frame count is less than 1, then the methods below will be ignored. +- (NSUInteger)animatedImageFrameCount; + +/// Animation loop count, 0 means infinite looping. +- (NSUInteger)animatedImageLoopCount; + +/// Bytes per frame (in memory). It may used to optimize memory buffer size. +- (NSUInteger)animatedImageBytesPerFrame; + +/// Returns the frame image from a specified index. +/// This method may be called on background thread. +/// @param index Frame index (zero based). +- (nullable UIImage *)animatedImageFrameAtIndex:(NSUInteger)index; + +/// Returns the frames's duration from a specified index. +/// @param index Frame index (zero based). +- (NSTimeInterval)animatedImageDurationAtIndex:(NSUInteger)index; + +@optional +/// A rectangle in image coordinates defining the subrectangle of the image that +/// will be displayed. The rectangle should not outside the image's bounds. +/// It may used to display sprite animation with a single image (sprite sheet). +- (CGRect)animatedImageContentsRectAtIndex:(NSUInteger)index; +@end + +NS_ASSUME_NONNULL_END -- Gitblit v1.8.0