From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/YYCategories/YYCategories/Quartz/CALayer+YYAdd.m | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 324 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYCategories/YYCategories/Quartz/CALayer+YYAdd.m b/screendisplay/Pods/YYCategories/YYCategories/Quartz/CALayer+YYAdd.m new file mode 100755 index 0000000..31efbff --- /dev/null +++ b/screendisplay/Pods/YYCategories/YYCategories/Quartz/CALayer+YYAdd.m @@ -0,0 +1,324 @@ +// +// CALayer+YYAdd.m +// YYCategories <https://github.com/ibireme/YYCategories> +// +// Created by ibireme on 14/5/10. +// 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 "CALayer+YYAdd.h" +#import "YYCategoriesMacro.h" +#import "YYCGUtilities.h" + +YYSYNTH_DUMMY_CLASS(CALayer_YYAdd) + + +@implementation CALayer (YYAdd) + +- (UIImage *)snapshotImage { + UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.opaque, 0); + CGContextRef context = UIGraphicsGetCurrentContext(); + [self renderInContext:context]; + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return image; +} + +- (NSData *)snapshotPDF { + CGRect bounds = self.bounds; + NSMutableData* data = [NSMutableData data]; + CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData((__bridge CFMutableDataRef)data); + CGContextRef context = CGPDFContextCreate(consumer, &bounds, NULL); + CGDataConsumerRelease(consumer); + if (!context) return nil; + CGPDFContextBeginPage(context, NULL); + CGContextTranslateCTM(context, 0, bounds.size.height); + CGContextScaleCTM(context, 1.0, -1.0); + [self renderInContext:context]; + CGPDFContextEndPage(context); + CGPDFContextClose(context); + CGContextRelease(context); + return data; +} + +- (void)setLayerShadow:(UIColor*)color offset:(CGSize)offset radius:(CGFloat)radius { + self.shadowColor = color.CGColor; + self.shadowOffset = offset; + self.shadowRadius = radius; + self.shadowOpacity = 1; + self.shouldRasterize = YES; + self.rasterizationScale = [UIScreen mainScreen].scale; +} + +- (void)removeAllSublayers { + while (self.sublayers.count) { + [self.sublayers.lastObject removeFromSuperlayer]; + } +} + +- (CGFloat)left { + return self.frame.origin.x; +} + +- (void)setLeft:(CGFloat)x { + CGRect frame = self.frame; + frame.origin.x = x; + self.frame = frame; +} + +- (CGFloat)top { + return self.frame.origin.y; +} + +- (void)setTop:(CGFloat)y { + CGRect frame = self.frame; + frame.origin.y = y; + self.frame = frame; +} + +- (CGFloat)right { + return self.frame.origin.x + self.frame.size.width; +} + +- (void)setRight:(CGFloat)right { + CGRect frame = self.frame; + frame.origin.x = right - frame.size.width; + self.frame = frame; +} + +- (CGFloat)bottom { + return self.frame.origin.y + self.frame.size.height; +} + +- (void)setBottom:(CGFloat)bottom { + CGRect frame = self.frame; + frame.origin.y = bottom - frame.size.height; + self.frame = frame; +} + +- (CGFloat)width { + return self.frame.size.width; +} + +- (void)setWidth:(CGFloat)width { + CGRect frame = self.frame; + frame.size.width = width; + self.frame = frame; +} + +- (CGFloat)height { + return self.frame.size.height; +} + +- (void)setHeight:(CGFloat)height { + CGRect frame = self.frame; + frame.size.height = height; + self.frame = frame; +} + +- (CGPoint)center { + return CGPointMake(self.frame.origin.x + self.frame.size.width * 0.5, + self.frame.origin.y + self.frame.size.height * 0.5); +} + +- (void)setCenter:(CGPoint)center { + CGRect frame = self.frame; + frame.origin.x = center.x - frame.size.width * 0.5; + frame.origin.y = center.y - frame.size.height * 0.5; + self.frame = frame; +} + +- (CGFloat)centerX { + return self.frame.origin.x + self.frame.size.width * 0.5; +} + +- (void)setCenterX:(CGFloat)centerX { + CGRect frame = self.frame; + frame.origin.x = centerX - frame.size.width * 0.5; + self.frame = frame; +} + +- (CGFloat)centerY { + return self.frame.origin.y + self.frame.size.height * 0.5; +} + +- (void)setCenterY:(CGFloat)centerY { + CGRect frame = self.frame; + frame.origin.y = centerY - frame.size.height * 0.5; + self.frame = frame; +} + +- (CGPoint)origin { + return self.frame.origin; +} + +- (void)setOrigin:(CGPoint)origin { + CGRect frame = self.frame; + frame.origin = origin; + self.frame = frame; +} + +- (CGSize)frameSize { + return self.frame.size; +} + +- (void)setFrameSize:(CGSize)size { + CGRect frame = self.frame; + frame.size = size; + self.frame = frame; +} + +- (CGFloat)transformRotation { + NSNumber *v = [self valueForKeyPath:@"transform.rotation"]; + return v.doubleValue; +} + +- (void)setTransformRotation:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.rotation"]; +} + +- (CGFloat)transformRotationX { + NSNumber *v = [self valueForKeyPath:@"transform.rotation.x"]; + return v.doubleValue; +} + +- (void)setTransformRotationX:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.rotation.x"]; +} + +- (CGFloat)transformRotationY { + NSNumber *v = [self valueForKeyPath:@"transform.rotation.y"]; + return v.doubleValue; +} + +- (void)setTransformRotationY:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.rotation.y"]; +} + +- (CGFloat)transformRotationZ { + NSNumber *v = [self valueForKeyPath:@"transform.rotation.z"]; + return v.doubleValue; +} + +- (void)setTransformRotationZ:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.rotation.z"]; +} + +- (CGFloat)transformScaleX { + NSNumber *v = [self valueForKeyPath:@"transform.scale.x"]; + return v.doubleValue; +} + +- (void)setTransformScaleX:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.scale.x"]; +} + +- (CGFloat)transformScaleY { + NSNumber *v = [self valueForKeyPath:@"transform.scale.y"]; + return v.doubleValue; +} + +- (void)setTransformScaleY:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.scale.y"]; +} + +- (CGFloat)transformScaleZ { + NSNumber *v = [self valueForKeyPath:@"transform.scale.z"]; + return v.doubleValue; +} + +- (void)setTransformScaleZ:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.scale.z"]; +} + +- (CGFloat)transformScale { + NSNumber *v = [self valueForKeyPath:@"transform.scale"]; + return v.doubleValue; +} + +- (void)setTransformScale:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.scale"]; +} + +- (CGFloat)transformTranslationX { + NSNumber *v = [self valueForKeyPath:@"transform.translation.x"]; + return v.doubleValue; +} + +- (void)setTransformTranslationX:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.translation.x"]; +} + +- (CGFloat)transformTranslationY { + NSNumber *v = [self valueForKeyPath:@"transform.translation.y"]; + return v.doubleValue; +} + +- (void)setTransformTranslationY:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.translation.y"]; +} + +- (CGFloat)transformTranslationZ { + NSNumber *v = [self valueForKeyPath:@"transform.translation.z"]; + return v.doubleValue; +} + +- (void)setTransformTranslationZ:(CGFloat)v { + [self setValue:@(v) forKeyPath:@"transform.translation.z"]; +} + +- (CGFloat)transformDepth { + return self.transform.m34; +} + +- (void)setTransformDepth:(CGFloat)v { + CATransform3D d = self.transform; + d.m34 = v; + self.transform = d; +} + +- (UIViewContentMode)contentMode { + return YYCAGravityToUIViewContentMode(self.contentsGravity); +} + +- (void)setContentMode:(UIViewContentMode)contentMode { + self.contentsGravity = YYUIViewContentModeToCAGravity(contentMode); +} + +- (void)addFadeAnimationWithDuration:(NSTimeInterval)duration curve:(UIViewAnimationCurve)curve { + if (duration <= 0) return; + + NSString *mediaFunction; + switch (curve) { + case UIViewAnimationCurveEaseInOut: { + mediaFunction = kCAMediaTimingFunctionEaseInEaseOut; + } break; + case UIViewAnimationCurveEaseIn: { + mediaFunction = kCAMediaTimingFunctionEaseIn; + } break; + case UIViewAnimationCurveEaseOut: { + mediaFunction = kCAMediaTimingFunctionEaseOut; + } break; + case UIViewAnimationCurveLinear: { + mediaFunction = kCAMediaTimingFunctionLinear; + } break; + default: { + mediaFunction = kCAMediaTimingFunctionLinear; + } break; + } + + CATransition *transition = [CATransition animation]; + transition.duration = duration; + transition.timingFunction = [CAMediaTimingFunction functionWithName:mediaFunction]; + transition.type = kCATransitionFade; + [self addAnimation:transition forKey:@"yykit.fade"]; +} + +- (void)removePreviousFadeAnimation { + [self removeAnimationForKey:@"yykit.fade"]; +} + +@end -- Gitblit v1.8.0