簡體   English   中英

動畫漸變背景

[英]Animate gradient background

我正在嘗試為漸變設置動畫,但無法使其正常工作。 我在這里想念什么? 我已經閱讀了許多不同的指南,但是都行不通。 我設法使其他動畫工作,例如旋轉。

        public override void ViewDidLoad()
    {

        base.ViewDidLoad();

        CGColor[] colors = new CGColor[] {
            new UIColor(red: 0.05f, green:0.44f, blue:0.73f, alpha:1.0f).CGColor,
            new UIColor(red: 45/255, green: 128 / 255, blue: 153 / 255, alpha: 0.01f ).CGColor
        };

        CAGradientLayer gradientLayer = new CAGradientLayer();
        gradientLayer.Frame = this.View.Bounds;
        gradientLayer.Colors = colors;

        var animat = CABasicAnimation.FromKeyPath("colors");
        animat.From = NSObject.FromObject(colors);
        animat.To = NSObject.FromObject(new CGColor[] {
            new UIColor(red:244/255, green: 88/255, blue: 53/255, alpha:1.0f).CGColor,
            new UIColor(red:196/255, green: 70/255, blue: 107/255, alpha: 0.01f ).CGColor
        });
        animat.Duration = 10;
        animat.FillMode = CAFillMode.Forwards;
        animat.RemovedOnCompletion = false;
        animat.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.Linear);
        gradientLayer.AddAnimation(animat, "animateGradient");

        this.View.Layer.InsertSublayer(gradientLayer, 0); 
    }

您應該使用NSArray修改FromTo屬性,例如:

animat.From = NSArray.FromObjects(colors);
animat.To = NSArray.FromObjects(new CGColor[] {
    new UIColor(red:244/255, green: 88/255, blue: 53/255, alpha:1.0f).CGColor,
    new UIColor(red:196/255, green: 70/255, blue: 107/255, alpha: 0.01f ).CGColor
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM