从iOS TabBar中删除着色

时间:2015-09-02 07:31:29

标签: c# ios xamarin xamarin.forms

我的视图底部有一个TabBar,我不想要任何着色。与iOS 7一样,iOS会自动将图标变为蓝色,我不希望这种情况发生。

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

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

我想要一个没有任何着色的标签项目的图像。怎么办呢?

3 个答案:

答案 0 :(得分:1)

你不能。

标签栏按钮不显示颜色。标签栏按钮仅使用您指定给它们的图像中的Alpha信息。您可以使用分段控件。

答案 1 :(得分:1)

有点晚了,但我遇到了类似的问题,这就是我的所作所为。我创建了一个自定义标签栏并设置标签栏项目以使用原始图像(没有色调)。然后,我指定在选择图标时使用渲染模板。

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);
        }
    }
}

答案 2 :(得分:0)

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

不需要任何其他操作,您可以在TabView(或Image View)中选择任何色调颜色,但不会对其产生任何影响。您也可以通过编程方式执行此操作,但这要简单一些。

虽然我不确定自从哪个iOS版本开始可以使用此功能,但是对于其他存在类似问题的人可能会有帮助。

enter image description here