mirror of
https://github.com/samsonjs/samhuri.net-ios.git
synced 2026-03-26 09:35:47 +00:00
41 lines
970 B
Objective-C
41 lines
970 B
Objective-C
//
|
|
// CALayer+PromiseKit.m
|
|
//
|
|
// Created by María Patricia Montalvo Dzib on 24/11/14.
|
|
// Copyright (c) 2014 Aluxoft SCP. All rights reserved.
|
|
//
|
|
|
|
#import <objc/runtime.h>
|
|
#import <PromiseKit/Promise.h>
|
|
#import <QuartzCore/CAAnimation.h>
|
|
#import "CALayer+PromiseKit.h"
|
|
|
|
|
|
@interface PMKCAAnimationDelegate : NSObject {
|
|
@public
|
|
void (^fullfiller)(id);
|
|
}
|
|
@end
|
|
@implementation PMKCAAnimationDelegate
|
|
|
|
-(void) animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {
|
|
fullfiller(PMKManifold(@(flag), anim));
|
|
PMKRelease(self);
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation CALayer (PromiseKit)
|
|
|
|
-(PMKPromise*) promiseAnimation:(CAAnimation*) animation forKey:(NSString*) key {
|
|
PMKCAAnimationDelegate* d = [[PMKCAAnimationDelegate alloc] init];
|
|
PMKRetain(d);
|
|
animation.delegate = d;
|
|
[self addAnimation:animation forKey:key];
|
|
return [PMKPromise new:^(PMKPromiseFulfiller fulfill, PMKPromiseRejecter reject) {
|
|
d->fullfiller = fulfill;
|
|
}];
|
|
}
|
|
|
|
@end
|