private void AddOnAnimation()
{
if (_checkMarkLayer == null)
return;
if (Math.Abs(_animationDuration) < 0.0001f)
return;
CABasicAnimation animation;
CAKeyFrameAnimation wiggle;
CABasicAnimation opacityAnimation;
switch (_onAnimationType)
{
case BemAnimationType.BemAnimationTypeStroke:
animation = _animationManager.StrokeAnimationReverse(false);
_onBoxLayer.AddAnimation(animation, "strokeEnd");
animation.Delegate = _animationDelegate;
_checkMarkLayer.AddAnimation(animation, "strokeEnd");
break;
case BemAnimationType.BemAnimationTypeFill:
wiggle = _animationManager.FillAnimationWithBounces(1, 0.18f, false);
opacityAnimation = _animationManager.OpacityAnimationReverse(false);
wiggle.Delegate = _animationDelegate;
_onBoxLayer.AddAnimation(wiggle, "transform");
_checkMarkLayer.AddAnimation(opacityAnimation, "opacity");
break;
case BemAnimationType.BemAnimationTypeBounce:
float amplitude = _boxType == BemBoxType.BemBoxTypeSquare ? 0.20f : 0.35f;
wiggle = _animationManager.FillAnimationWithBounces(1, amplitude, false);
wiggle.Delegate = _animationDelegate;
opacityAnimation = _animationManager.OpacityAnimationReverse(false);
opacityAnimation.Duration = _animationDuration / 1.4f;
_onBoxLayer.AddAnimation(opacityAnimation, "opacity");
_checkMarkLayer.AddAnimation(wiggle, "transform");
break;
default:
animation = _animationManager.StrokeAnimationReverse(false);
_onBoxLayer.AddAnimation(animation, "opacity");
animation.Delegate = _animationDelegate;
_checkMarkLayer.AddAnimation(animation, "opacity");
break;
}
}