#import "TGAnimationBlockDelegate.h" @implementation TGAnimationBlockDelegate - (instancetype)initWithLayer:(CALayer *)layer { self = [super init]; if (self != nil) { _layer = layer; } return self; } - (void)animationDidStart:(CAAnimation *)__unused anim { } - (void)animationDidStop:(CAAnimation *)__unused anim finished:(BOOL)flag { CALayer *layer = _layer; if (flag) { if (_opacityOnCompletion != nil) layer.opacity = [_opacityOnCompletion floatValue]; } if (_removeLayerOnCompletion) [layer removeFromSuperlayer]; if (_completion) _completion(flag); _completion = nil; } @end