public static CAKeyFrameAnimation Path(UIBezierPath bezierPath, MaterialAnimationRotationMode mode = MaterialAnimationRotationMode.Auto, double?duration = null)
        {
            var animation = CAKeyFrameAnimation.FromKeyPath("position");

            animation.Path = bezierPath.CGPath;

            animation.RotationMode = Convert.MaterialAnimationRotationModeToValue(mode);
            if (duration != null)
            {
                animation.Duration = duration.Value;
            }
            return(animation);
        }
        public static string MaterialAnimationRotationModeToValue(MaterialAnimationRotationMode mode)
        {
            switch (mode)
            {
            case MaterialAnimationRotationMode.None:
                return(null);

            case MaterialAnimationRotationMode.Auto:
                return(CAAnimation.RotateModeAuto);

            case MaterialAnimationRotationMode.AutoReverse:
                return(CAAnimation.RotateModeAutoReverse);

            default:
                return(null);
            }
        }