从 iOS TabBar 移除着色

Remove tinting from iOS TabBar

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

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

protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
    base.OnElementChanged(e);
    TabBar.TintColor = UIKit.UIColor.Clear;
}

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

你不能。

标签栏按钮不显示颜色。标签栏按钮仅使用您分配给它们的图像中的 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);
        }
    }
}

如果有人仍在寻找解决方案,您可以转到图像资产,select 所有选项卡图标(包括所选样式),然后在其选项中选择 Render As: Original Image 而不是 Default.

不需要额外的操作,您可以在 TabView(或图像视图)中 select 任何色调颜色,但它不会以任何方式影响它。您也可以通过编程方式执行此操作,但这要简单一些。

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