+ (CAAnimationGroup*)groupAnimations:(NSArray*)animations fillMode:(NSString*)fillMode forEffectLayer:(BOOL)forEffectLayer sublayersCount:(NSInteger)count{
CAAnimationGroup *groupAnimation = [CAAnimationGroup animation];
groupAnimation.animations        = animations;
if (fillMode) {
[groupAnimation.animations setValue:fillMode forKeyPath:@"fillMode"];
groupAnimation.fillMode = fillMode;
groupAnimation.removedOnCompletion = NO;
}

if (forEffectLayer) {
groupAnimation.duration = [QCMethod maxDurationOfEffectAnimation:groupAnimation sublayersCount:count];
}else{
groupAnimation.duration = [QCMethod maxDurationFromAnimations:animations];
}
return groupAnimation;
}

+ (CAAnimationGroup*)groupAnimations:(NSArray*)animations fillMode:(NSString*)fillMode{
return [self groupAnimations:animations fillMode:fillMode forEffectLayer:NO sublayersCount:0];
}