You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
4.3 KiB

//
// CLFavouriteAnimatedView.m
//
// Code generated using QuartzCode 1.39.17 on 5/16/16.
// www.quartzcodeapp.com
//
#import "CLFavouriteAnimatedView.h"
#import "QCMethod.h"
@interface CLFavouriteAnimatedView ()
@property (nonatomic, strong) NSMutableDictionary * layers;
@end
@implementation CLFavouriteAnimatedView
#pragma mark - Life Cycle
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setupProperties];
[self setupLayers];
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
[self setupProperties];
[self setupLayers];
}
return self;
}
- (void)setupProperties{
self.layers = [NSMutableDictionary dictionary];
}
- (void)setupLayers{
[self setWantsLayer:YES];
CALayer * ScreenShot20160515at113112PM = [CALayer layer];
ScreenShot20160515at113112PM.frame = CGRectMake(0, -115, 400, 358.62);
ScreenShot20160515at113112PM.contents = [NSImage imageNamed:@"Screen Shot 2016-05-15 at 11.31.12 PM"];
[self.layer addSublayer:ScreenShot20160515at113112PM];
self.layers[@"ScreenShot20160515at113112PM"] = ScreenShot20160515at113112PM;
CAShapeLayer * rectangle = [CAShapeLayer layer];
rectangle.frame = CGRectMake(63, 140, 10, 11);
rectangle.fillColor = [NSColor blueColor].CGColor;
rectangle.strokeColor = [NSColor colorWithRed:0.329 green: 0.329 blue:0.329 alpha:1].CGColor;
rectangle.path = [self rectanglePath].quartzPath;
[self.layer addSublayer:rectangle];
self.layers[@"rectangle"] = rectangle;
CALayer * MenuBar = [CALayer layer];
MenuBar.frame = CGRectMake(85, 261, 296, 23);
MenuBar.masksToBounds = YES;
MenuBar.contents = [NSImage imageNamed:@"MenuBar"];
MenuBar.contentsGravity = kCAGravityResizeAspect;
[self.layer addSublayer:MenuBar];
self.layers[@"MenuBar"] = MenuBar;
}
#pragma mark - Animation Setup
- (void)addUntitled1Animation{
NSString * fillMode = kCAFillModeForwards;
////Rectangle animation
CAKeyframeAnimation * rectangleFillColorAnim = [CAKeyframeAnimation animationWithKeyPath:@"fillColor"];
rectangleFillColorAnim.values = @[(id)[NSColor whiteColor].CGColor,
(id)[NSColor colorWithRed:0.263 green: 0.541 blue:0.98 alpha:1].CGColor];
rectangleFillColorAnim.keyTimes = @[@0, @1];
rectangleFillColorAnim.duration = 1;
rectangleFillColorAnim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
CAAnimationGroup * rectangleUntitled1Anim = [QCMethod groupAnimations:@[rectangleFillColorAnim] fillMode:fillMode];
[self.layers[@"rectangle"] addAnimation:rectangleUntitled1Anim forKey:@"rectangleUntitled1Anim"];
////MenuBar animation
CAKeyframeAnimation * MenuBarHiddenAnim = [CAKeyframeAnimation animationWithKeyPath:@"hidden"];
MenuBarHiddenAnim.values = @[@YES, @NO];
MenuBarHiddenAnim.keyTimes = @[@0, @1];
MenuBarHiddenAnim.duration = 2.82;
MenuBarHiddenAnim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
CAAnimationGroup * MenuBarUntitled1Anim = [QCMethod groupAnimations:@[MenuBarHiddenAnim] fillMode:fillMode];
[self.layers[@"MenuBar"] addAnimation:MenuBarUntitled1Anim forKey:@"MenuBarUntitled1Anim"];
}
#pragma mark - Animation Cleanup
- (void)updateLayerValuesForAnimationId:(NSString *)identifier{
if([identifier isEqualToString:@"Untitled1"]){
[QCMethod updateValueFromPresentationLayerForAnimation:[self.layers[@"rectangle"] animationForKey:@"rectangleUntitled1Anim"] theLayer:self.layers[@"rectangle"]];
[QCMethod updateValueFromPresentationLayerForAnimation:[self.layers[@"MenuBar"] animationForKey:@"MenuBarUntitled1Anim"] theLayer:self.layers[@"MenuBar"]];
}
}
- (void)removeAnimationsForAnimationId:(NSString *)identifier{
if([identifier isEqualToString:@"Untitled1"]){
[self.layers[@"rectangle"] removeAnimationForKey:@"rectangleUntitled1Anim"];
[self.layers[@"MenuBar"] removeAnimationForKey:@"MenuBarUntitled1Anim"];
}
}
- (void)removeAllAnimations{
[self.layers enumerateKeysAndObjectsUsingBlock:^(id key, CALayer *layer, BOOL *stop) {
[layer removeAllAnimations];
}];
}
#pragma mark - Bezier Path
- (NSBezierPath*)rectanglePath{
NSBezierPath * rectanglePath = [NSBezierPath bezierPathWithRect:CGRectMake(0, 0, 10, 11)];
return rectanglePath;
}
@end