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.
134 lines
4.3 KiB
134 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
|
|
|