Xamarin 沙马林梯度背景

Xamarin 沙马林梯度背景,xamarin,xamarin.ios,Xamarin,Xamarin.ios,我试图在Xamarin iOS中以编程方式设置如下背景渐变: 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}; C

我试图在Xamarin iOS中以编程方式设置如下背景渐变:

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;
            this.View.Layer.AddSublayer(gradientLayer);
它可以工作,但我在屏幕上有表单元素(标签、按钮等),这会导致所有这些元素都褪色,好像图层直接显示在元素的顶部。我认为这就是代码所做的-它渲染整个页面,然后在屏幕顶部添加不透明度层(我希望它在后面)

相反,我希望将背景设置为渐变,但我添加的任何元素都不会褪色,并尝试与背景颜色匹配

我尝试在标准视图的顶部添加一个视图,并将alpha设置为1,背景设置为白色,但这似乎没有帮助(这表明我的理论是,以编程方式在渲染后在所有内容的顶部添加一个层)

我做错了什么?
谢谢

指定给
ViewController
的根
视图的渐变层将显示在所有其他视图的“后面”

默认情况下,视图(UILabel、UIButton等)没有背景颜色集,因此将与该背景层混合,如果这不是您要寻找的效果,请为其指定背景:


我知道我赶不上演出,但为了将来参考,我使用:

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

0
表示索引。

hmm,所以我似乎不是这样;示例中的白色将淡出并与背景色匹配。我甚至将视图的背景设置为红色,但红色与渐变混合。同样对于我的标签,我只希望标签颜色是明亮的白色,而不是褪色。我不希望标签上有背景色。有什么想法吗?泰@空假设是
this
中的
this.View.Layer.AddSublayer
在您的示例中,视图控制器?您让我思考了一下,并对分层做了更多的研究。似乎在我的分层视图上使用视图的.SendSubviewtoBack()会导致首先显示背景,它就是这样工作的。
this.View.Layer.InsertSublayer(gradientLayer, 0);