2015-09-02 3 views
2

У меня есть TabBar в нижней части моего представления, что я не хочу, чтобы подкрашивались. Как и iOS 7, iOS автоматически подкрашивает значки синим цветом, и я не хочу, чтобы это произошло.Удалить tinting от iOS TabBar

Я пробовал писать пользовательский рендерер, но установив цвет оттенка, чтобы очистить, просто удаляет значок (должен был видеть, что он идет).

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

Я хочу иметь изображение для вкладки без каких-либо оттенков. Как это может быть сделано?

+0

Вы попробовали SelectedImageTintColor? –

+0

, что вы хотите, не имеет смысла. Отсутствие оттенка означает синий оттенок, как вы сказали, синий по умолчанию. Что вы подразумеваете под оттенком? При применении четкого оттенка применяется оттенок. Если вы не хотите, чтобы он был синим, вы должны применить другой цвет. – SpaceDog

+0

@SpaceDog Мне просто нужно мое изображение без какого-либо перекрашивания, выполняемого операционной системой –

ответ

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); 
     } 
    } 
} 
Смежные вопросы