Files
react-native-reanimated/ios/Transitioning/REATransitionAnimation.m
2019-04-04 09:27:15 +02:00

54 lines
1.1 KiB
Objective-C

#import <UIKit/UIKit.h>
#import "REATransitionAnimation.h"
#define DEFAULT_DURATION 0.25
@implementation REATransitionAnimation
+ (REATransitionAnimation *)transitionWithAnimation:(CAAnimation *)animation
layer:(CALayer *)layer
andKeyPath:(NSString*)keyPath;
{
REATransitionAnimation *anim = [REATransitionAnimation new];
anim.animation = animation;
anim.layer = layer;
anim.keyPath = keyPath;
return anim;
}
- (void)play
{
[_layer addAnimation:_animation forKey:_keyPath];
}
- (void)delayBy:(CFTimeInterval)delay
{
if (delay <= 0) {
return;
}
if (_animation.beginTime == 0) {
_animation.beginTime = CACurrentMediaTime() + delay;
} else {
_animation.beginTime += delay;
}
}
- (CFTimeInterval)duration
{
if (_animation.duration == 0) {
return DEFAULT_DURATION;
}
return _animation.duration;
}
- (CFTimeInterval)finishTime
{
if (_animation.beginTime == 0) {
return CACurrentMediaTime() + self.duration;
}
return _animation.beginTime + self.duration;
}
@end