Как установить на вкладке Xamarin.forms невыбранный значок и цвет текста в ios - PullRequest
0 голосов
/ 16 марта 2019

У меня есть приложение форм xamarin, в котором есть вкладка (показано на рисунке). Она будет отображаться на устройствах android , как это. enter image description here

В IOS это будет выглядеть так. enter image description here

Проблема, как вы можете видеть невыбранный значок и текст в ios, немного скучнее, чем аналог Android. Я фактически установил цвет выделенного и невыбранного значка и текста в Android, поместив эти строки на вкладке xaml.

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

Теперь в ios я устанавливаю выбранный цвет, добавляя эту строку в AppDelegate.cs

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

Но как мне настроить цвет невыбранного значка и цвет текста в ios? Должен ли я использовать любой пользовательский рендер?

1 Ответ

1 голос
/ 16 марта 2019

В последней предварительной версии 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);

Обычно я использую этот код в переопределении ViewWillLayoutSubviews, когда выполняю другие вещи, такие как микроуправление высотой панели вкладок, фоновое изображение, ecc ...

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

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

        //doing other customization stuff here

    }
...