Exemple #1
0
        private async Task AnimatePathTo(CAShapeLayer shapeLayer, float duration, UIBezierPath toBezierPath)
        {
            var fromCgPath = FromObject(shapeLayer.Path);
            var toCgPath   = FromObject(toBezierPath.CGPath);

            shapeLayer.Path = toBezierPath.CGPath;
            await AnimationUtils.BasicAnimationAsync(shapeLayer, "path", duration, fromCgPath, toCgPath, CAMediaTimingFunction.EaseInEaseOut);
        }
Exemple #2
0
        public async Task Pulse(float duration)
        {
            var halfDuration = duration / 2;
            await AnimationUtils.BasicAnimationAsync(_layer, "strokeEnd", halfDuration, 0f, 1f, CAMediaTimingFunction.EaseInEaseOut);

            await AnimationUtils.BasicAnimationAsync(_layer, "strokeStart", halfDuration, 0f, 1f, CAMediaTimingFunction.EaseInEaseOut);

            await ResetLayer();
        }
Exemple #3
0
        /// <summary>
        /// Resetting the strokeEnd and strokeStart is a little tricky since it will animate
        /// to the values you set it to if you aren't careful and that looks bad
        /// </summary>
        /// <returns></returns>
        private async Task ResetLayer()
        {
            _layer.Opacity = 0f;
            await AnimationUtils.BasicAnimationAsync(_layer, "strokeEnd", .01f, 1f, 0f, CAMediaTimingFunction.Linear);

            await AnimationUtils.BasicAnimationAsync(_layer, "strokeStart", .01f, 1f, 0f, CAMediaTimingFunction.Linear);

            _layer.Opacity = 1f;
        }