应用渐变工具栏时,IOS 工具栏图标颜色会发生变化

穆尼卡

我正在使用 Xamarin.Forms 开发一个 IOS 应用程序,并且我已经使用自定义渲染器将工具栏颜色自定义为渐变颜色。但是,在此之后,图标颜色将根据工具栏颜色以及如何将标题文本设置为白色。这是我用于工具栏自定义的渲染器

public class NavigationPageGradientHeaderRenderer:NavigationRenderer
{
    public override void ViewWillAppear(bool animated)
    {
        base.ViewWillAppear(animated);

        var control = (NavigationPageGradientHeader)this.Element;

        var gradientLayer = new CAGradientLayer();
        gradientLayer.Bounds = NavigationBar.Bounds;
        gradientLayer.Colors = new CGColor[] { control.RightColor.ToCGColor(), control.LeftColor.ToCGColor() };
        gradientLayer.StartPoint = new CGPoint(0.0, 0.5);
        gradientLayer.EndPoint = new CGPoint(1.0, 0.5);

        UIGraphics.BeginImageContext(gradientLayer.Bounds.Size);
        gradientLayer.RenderInContext(UIGraphics.GetCurrentContext());
        UIImage image = UIGraphics.GetImageFromCurrentImageContext();
        UIGraphics.EndImageContext();

        NavigationBar.SetBackgroundImage(image, UIBarMetrics.Default);
    }
}

应用此图标后,图标如下所示:在此处输入图像描述

但我希望图像背景像这样透明:在此处输入图像描述,标题文本颜色应为白色。

我怎样才能做到这一点。任何人都可以帮助我。

谢谢

卢卡斯张

您可以将属性设置在 CustomRenderer

public override void ViewWillAppear(bool animated)
    {
        base.ViewWillAppear(animated);

        var control = (MyNativePage)Element;

        var gradientLayer = new CAGradientLayer();
        gradientLayer.Bounds = NavigationBar.Bounds;
        gradientLayer.Colors = new CGColor[] { UIColor.Red.CGColor,UIColor.White.CGColor };
        gradientLayer.StartPoint = new CGPoint(0.0, 0.5);
        gradientLayer.EndPoint = new CGPoint(1.0, 0.5);

        UIGraphics.BeginImageContext(gradientLayer.Bounds.Size);
        gradientLayer.RenderInContext(UIGraphics.GetCurrentContext());
        UIImage image = UIGraphics.GetImageFromCurrentImageContext();
        UIGraphics.EndImageContext();

        NavigationBar.SetBackgroundImage(image, UIBarMetrics.Default);


        NavigationBar.TintColor = UIColor.White;
        NavigationBar.TitleTextAttributes = new UIStringAttributes() { ForegroundColor =UIColor.White};

    } 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

应用工具栏时崩溃

来自分类Dev

ios7工具栏颜色淡出

来自分类Dev

TinyMCE:工具栏图标未出现

来自分类Dev

工具栏不显示溢出图标

来自分类Dev

为什么状态栏字体大小在iPhone 6上会发生变化?

来自分类Dev

在Android工具栏中显示图标

来自分类Dev

在Android工具栏中显示图标

来自分类Dev

Android上的工具栏图标着色

来自分类Dev

从右到左对齐工具栏图标?

来自分类Dev

更改左侧的工具栏默认图标

来自分类Dev

如何更改工具栏中抽屉图标的颜色

来自分类Dev

以编程方式设置工具栏图标颜色

来自分类Dev

当折叠的工具栏折叠时,如何更改其颜色?

来自分类Dev

从工具栏中删除图标

来自分类Dev

工具栏盲区

来自分类Dev

使用Quill时更改工具栏按钮的颜色吗?

来自分类Dev

编程工具栏图标以响应Tap

来自分类Dev

从工具栏中删除图标

来自分类Dev

TinyMCE:工具栏图标不出现

来自分类Dev

Javascript工具栏

来自分类Dev

向Extjs工具栏添加图标

来自分类Dev

工具栏未在iOS中显示

来自分类Dev

在片段中引用工具栏时发生NullPointerException

来自分类Dev

JavaFX删除工具栏渐变

来自分类Dev

如何在单击按钮时更改工具栏颜色?

来自分类Dev

滚动时,徽标颜色会发生变化,但向上滚动时会保持不变

来自分类Dev

如何设置表单工具栏后退图标的颜色?

来自分类Dev

单击离开时,角材料活动选项卡标签颜色会发生变化

来自分类Dev

如何更改工具栏中图标的颜色?