[英]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
修改From
和To
屬性,例如:
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.