C# 从iOS选项卡栏中删除着色

C# 从iOS选项卡栏中删除着色,c#,ios,xamarin,xamarin.forms,C#,Ios,Xamarin,Xamarin.forms,我的视图底部有一个选项卡,我不想对其进行任何着色。作为od iOS 7,iOS会自动将图标染成蓝色,我不希望发生这种情况 我曾尝试编写一个自定义渲染器,但将“淡色”设置为“清除”只会删除图标(应该已经看到了) 我希望选项卡项的图像没有任何着色。如何做到这一点?你不能 选项卡栏按钮不显示颜色。选项卡栏按钮仅使用指定给它们的图像中的alpha信息。您可以改用分段控件。有点晚了,但我遇到了类似的问题,下面是我所做的。我创建了一个自定义选项卡栏,并将选项卡栏项设置为使用原始图像(不带色调)。然后,我指定

我的视图底部有一个选项卡,我不想对其进行任何着色。作为od iOS 7,iOS会自动将图标染成蓝色,我不希望发生这种情况

我曾尝试编写一个自定义渲染器,但将“淡色”设置为“清除”只会删除图标(应该已经看到了)

我希望选项卡项的图像没有任何着色。如何做到这一点?

你不能


选项卡栏按钮不显示颜色。选项卡栏按钮仅使用指定给它们的图像中的alpha信息。您可以改用分段控件。

有点晚了,但我遇到了类似的问题,下面是我所做的。我创建了一个自定义选项卡栏,并将选项卡栏项设置为使用原始图像(不带色调)。然后,我指定在选择图标时使用渲染模板

public partial class UICustomTabBar : UITabBar
{
    public UICustomTabBar (IntPtr handle) : base (handle)
    {
        //Set your colors
        BackgroundColor = UIColor.White;
        SelectedImageTintColor = UIColor.Red;

        foreach (UITabBarItem tabBarItem in Items)
        {
            tabBarItem.SelectedImage = tabBarItem.SelectedImage.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
            tabBarItem.Image = tabBarItem.Image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
        }
    }
}

如果有人仍在寻找解决方案,您可以转到图像资源,选择所有选项卡图标(包括选定的样式),并在其选项中选择“渲染为:原始图像”而不是“默认值”

无需其他操作,您可以在选项卡视图(或图像视图)中选择任何着色颜色,但不会对其产生任何影响。您也可以通过编程的方式来完成,但这要简单一点

虽然我不确定这个功能是哪个iOS提供的,但它可能会对其他有类似问题的人有所帮助


您是否尝试过选择“图像着色颜色”?您想要的东西没有意义。无色调意味着蓝色色调,正如您所说,蓝色是默认颜色。你说没有色彩是什么意思?应用透明色调就是应用色调。如果您不想要蓝色,您应该应用另一种颜色。@SpaceDog我只想要我的图像,而不需要OSI进行任何回忆。如果图像没有颜色,iOS应该将其绘制成什么颜色?@SpaceDog图像确实有颜色。为了便于理解,请想象这是一幅从相机拍摄的图像(你明白了)
public partial class UICustomTabBar : UITabBar
{
    public UICustomTabBar (IntPtr handle) : base (handle)
    {
        //Set your colors
        BackgroundColor = UIColor.White;
        SelectedImageTintColor = UIColor.Red;

        foreach (UITabBarItem tabBarItem in Items)
        {
            tabBarItem.SelectedImage = tabBarItem.SelectedImage.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate);
            tabBarItem.Image = tabBarItem.Image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);
        }
    }
}