示例#1
0
        public static SkeletonLayerAnimation MakeSlidingAnimation(GradientDirection direction, double duration = 1.5)
        {
            return((layer) =>
            {
                var startValues = direction.StartPoint();
                var endValues = direction.EndPoint();

                var startPointAnim = CABasicAnimation.FromKeyPath(nameof(CAGradientLayer.StartPoint));
                startPointAnim.From = NSValue.FromCGPoint(startValues.from);
                startPointAnim.To = NSValue.FromCGPoint(startValues.to);

                var endPointAnim = CABasicAnimation.FromKeyPath(nameof(CAGradientLayer.EndPoint));
                endPointAnim.From = NSValue.FromCGPoint(endValues.from);
                endPointAnim.To = NSValue.FromCGPoint(endValues.to);

                var animGroup = new CAAnimationGroup
                {
                    Animations = new[] { startPointAnim, endPointAnim },
                    Duration = duration,
                    TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseIn),
                    RepeatCount = float.MaxValue
                };
                return animGroup;
            });
        }