我正在尝试将导航栏背景改为渐变红色。我给导航栏添加了子视图,它把背景设置为我想要的颜色。但是导航栏返回按钮文本是不可见的。后退按钮可见,但文本不可见。
UIView view = new UIView();
var gradient = new CAGradientLayer();
gradient.Frame = NavigationBar.Bounds;
gradient.NeedsDisplayOnBoundsChange = true;
gradient.MasksToBounds = true;
gradient.Colors = new CGColor[] { UIColor.FromRGB(248, 0, 0).CGColor, UIColor.FromRGB(143, 0, 0).CGColor };
view.Layer.InsertSublayer(gradient, 0);
UINavigationBar.Appearance.SetTitleTextAttributes(new UITextAttributes() { TextColor = UIColor.Clear });
var bounds = NavigationBar.Bounds;
this.NavigationBar.AddSubview(view);
我创建了渐变颜色的图像,并使用该图像作为导航栏的背景。对于iOS,请参见下面的教程。
UINavigationBar tintColor with gradient
UIGraphics.BeginImageContext(gradient.Bounds.Size);
gradient.RenderInContext(UIGraphics.GetCurrentContext());
UIImage backImage = Graphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
NavigationBar.BarStyle = UIBarStyle.Default;
UINavigationBar.Appearance.SetBackgroundImage(backImage, UIBarMetrics.Default);