private static CAAnimation ShimmerSlideRepeat(CAAnimation a, double duration, ShimmeringDirection direction)
 {
     CAAnimation anim = (CAAnimation)a.Copy();
     anim.RepeatCount = float.MaxValue;
     anim.Duration = duration;
     anim.Speed = (direction == ShimmeringDirection.Right || direction == ShimmeringDirection.Down)
         ? Math.Abs(anim.Speed)
         : -Math.Abs(anim.Speed);
     return anim;
 }
        private static CABasicAnimation ShimmerSlideAnimation(double duration, ShimmeringDirection direction)
        {
            CABasicAnimation animation = CABasicAnimation.FromKeyPath("position");
            animation.To = NSValue.FromCGPoint(CGPoint.Empty);
            animation.Duration = duration;
            animation.RepeatCount = float.MaxValue;
            if (direction == ShimmeringDirection.Left || direction == ShimmeringDirection.Up)
            {
                animation.Speed = -(float)Math.Abs(animation.Speed);
            }

            return animation;
        }
        private static CABasicAnimation ShimmerSlideAnimation(double duration, ShimmeringDirection direction)
        {
            CABasicAnimation animation = CABasicAnimation.FromKeyPath("position");

            animation.To          = NSValue.FromCGPoint(CGPoint.Empty);
            animation.Duration    = duration;
            animation.RepeatCount = float.MaxValue;
            if (direction == ShimmeringDirection.Left || direction == ShimmeringDirection.Up)
            {
                animation.Speed = -(float)Math.Abs(animation.Speed);
            }

            return(animation);
        }
        private static CAAnimation ShimmerSlideRepeat(CAAnimation a, double duration, ShimmeringDirection direction)
        {
            CAAnimation anim = (CAAnimation)a.Copy();

            anim.RepeatCount = float.MaxValue;
            anim.Duration    = duration;
            anim.Speed       = (direction == ShimmeringDirection.Right || direction == ShimmeringDirection.Down)
                ? Math.Abs(anim.Speed)
                : -Math.Abs(anim.Speed);
            return(anim);
        }