更改Xamarin Forms iOS中“更多”标签部分中的标签栏图标和文本的颜色

时间:2018-08-17 18:57:46

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

我正在研究Xamarin表单项目。

我有一个带9个标签的标签页。标签栏中将显示4个标签,其中包含说明和图标,另外还添加了一个标签“更多”,其中包含其他标签列表。

在我设置的Appdelegate.cs文件中

UITabbar.appearance.SelectedImageTintColor = UIColor.green;

这也是我的“自定义”标签渲染器:

 public class CustomTabRenderer : TabbedRenderer
{
    protected override void OnElementChanged(VisualElementChangedEventArgs e)
    {
        base.OnElementChanged(e);
        TabBar.TintColor = new UIColor(red: 0.55f, green: 0.76f, blue: 0.29f, alpha: 1.0f);
    }

    public override void ViewDidAppear(bool animated)
    {
        base.ViewDidAppear(animated);
        if (TabBar.Items == null) return;
        TabBar.SelectedImageTintColor = new UIColor(red: 0.55f, green: 0.76f, blue: 0.29f, alpha: 1.0f);
        foreach (var uiTabBarItem in TabBar.Items)
        {
            var fontSize = new UITextAttributes(){ Font = UIFont.SystemFontOfSize(13)};
            uiTabBarItem.SetTitleTextAttributes(fontSize, UIControlState.Normal);

        } 
    }

    public override void ItemSelected(UITabBar tabbar, UITabBarItem item)
    {
        tabbar.SelectedImageTintColor = new UIColor(red: 0.55f, green: 0.76f, blue: 0.29f, alpha: 1.0f);
    }

因此,酒吧栏中的所有4个标签都是绿色,但是“更多”部分中的标签始终是蓝色。

有什么解决办法吗?我们还可以将彩色图像放入标签栏吗?

1 个答案:

答案 0 :(得分:1)

首先,标签栏在iOS中最多只能显示5个项目。如果您想更改项目“更多”的颜色,请使用代码

    UITabBarController  tabViewController = (UITabBarController)this.Window.RootViewController;
    tabViewController.MoreNavigationController.TabBarController.TabBar.TintColor =new UIColor(red: 0.55f, green: 0.76f, blue: 0.29f, alpha: 1.0f);

设置标签栏后