如何在iOS中设置Xamarin.forms选项卡页面未选择的图标和文本颜色

时间:2019-03-16 07:58:43

标签: xamarin.forms xamarin.android xamarin.ios tabbedpage

我有一个xamarin表单应用程序,该应用程序具有一个选项卡页(如图所示)。它将在 android 设备中显示如下。 enter image description here

ios 中,它看起来像这样。 enter image description here

您在ios中看到未选择的图标和文本的问题比android对应的问题更暗淡。我实际上通过将这些行放在选项卡页面xaml中来设置android中选中和未选中的图标和文本的颜色。

         android:TabbedPage.BarItemColor="#c4c0c0"
         android:TabbedPage.BarSelectedItemColor="#ffffff"

现在在ios中,我通过在AppDelegate.cs中添加此行来设置所选颜色

 UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(255, 255, 255);

但是如何在ios中调整未选择的图标的颜色和文本的颜色?我应该使用任何自定义渲染吗?

1 个答案:

答案 0 :(得分:1)

在最新的4.0预发行版中,有两个适用于iOS和Android的新属性:

Color TabbedPage.UnselectedTabColorProperty { get; set; } //Bindable Property
Color TabbedPage.SelectedTabColorProperty { get; set; } //Bindable Property

在此处拉取请求: https://github.com/xamarin/Xamarin.Forms/pull/4899

对于较旧的版本,必须使用自定义渲染器。例如,这是未选中时获取白色的代码:

TabBar.UnselectedItemTintColor = UIColor.FromRGBA(255, 255, 255, 255);

通常,我在做其他诸如微管理标签栏高度,背景图像,ecc等事情时会在ViewWillLayoutSubviews覆盖中使用此代码。

    public override void ViewWillLayoutSubviews()
    {
        base.ViewWillLayoutSubviews();

        TabBar.UnselectedItemTintColor = UIColor.FromRGBA(255, 255, 255, 255);

        //doing other customization stuff here

    }