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/YYSpriteSheetImage.h | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 104 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYImage/YYImage/YYSpriteSheetImage.h b/screendisplay/Pods/YYImage/YYImage/YYSpriteSheetImage.h new file mode 100755 index 0000000..403bbf5 --- /dev/null +++ b/screendisplay/Pods/YYImage/YYImage/YYSpriteSheetImage.h @@ -0,0 +1,104 @@ +// +// YYSpriteImage.h +// YYImage <https://github.com/ibireme/YYImage> +// +// Created by ibireme on 15/4/21. +// 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> + +#if __has_include(<YYImage/YYImage.h>) +#import <YYImage/YYAnimatedImageView.h> +#elif __has_include(<YYWebImage/YYImage.h>) +#import <YYWebImage/YYAnimatedImageView.h> +#else +#import "YYAnimatedImageView.h" +#endif + +NS_ASSUME_NONNULL_BEGIN + +/** + An image to display sprite sheet animation. + + @discussion It is a fully compatible `UIImage` subclass. + The animation can be played by YYAnimatedImageView. + + Sample Code: + + // 8 * 12 sprites in a single sheet image + UIImage *spriteSheet = [UIImage imageNamed:@"sprite-sheet"]; + NSMutableArray *contentRects = [NSMutableArray new]; + NSMutableArray *durations = [NSMutableArray new]; + for (int j = 0; j < 12; j++) { + for (int i = 0; i < 8; i++) { + CGRect rect; + rect.size = CGSizeMake(img.size.width / 8, img.size.height / 12); + rect.origin.x = img.size.width / 8 * i; + rect.origin.y = img.size.height / 12 * j; + [contentRects addObject:[NSValue valueWithCGRect:rect]]; + [durations addObject:@(1 / 60.0)]; + } + } + YYSpriteSheetImage *sprite; + sprite = [[YYSpriteSheetImage alloc] initWithSpriteSheetImage:img + contentRects:contentRects + frameDurations:durations + loopCount:0]; + YYAnimatedImageView *imgView = [YYAnimatedImageView new]; + imgView.size = CGSizeMake(img.size.width / 8, img.size.height / 12); + imgView.image = sprite; + + + + @discussion It can also be used to display single frame in sprite sheet image. + Sample Code: + + YYSpriteSheetImage *sheet = ...; + UIImageView *imageView = ...; + imageView.image = sheet; + imageView.layer.contentsRect = [sheet contentsRectForCALayerAtIndex:6]; + + */ +@interface YYSpriteSheetImage : UIImage <YYAnimatedImage> + +/** + Creates and returns an image object. + + @param image The sprite sheet image (contains all frames). + + @param contentRects The sprite sheet image frame rects in the image coordinates. + The rectangle should not outside the image's bounds. The objects in this array + should be created with [NSValue valueWithCGRect:]. + + @param frameDurations The sprite sheet image frame's durations in seconds. + The objects in this array should be NSNumber. + + @param loopCount Animation loop count, 0 means infinite looping. + + @return An image object, or nil if an error occurs. + */ +- (nullable instancetype)initWithSpriteSheetImage:(UIImage *)image + contentRects:(NSArray<NSValue *> *)contentRects + frameDurations:(NSArray<NSNumber *> *)frameDurations + loopCount:(NSUInteger)loopCount; + +@property (nonatomic, readonly) NSArray<NSValue *> *contentRects; +@property (nonatomic, readonly) NSArray<NSValue *> *frameDurations; +@property (nonatomic, readonly) NSUInteger loopCount; + +/** + Get the contents rect for CALayer. + See "contentsRect" property in CALayer for more information. + + @param index Index of frame. + @return Contents Rect. + */ +- (CGRect)contentsRectForCALayerAtIndex:(NSUInteger)index; + +@end + +NS_ASSUME_NONNULL_END -- Gitblit v1.8.0