iOS переопределяет `navBarButtonColor` при использовании PNG

Описание проблемы

В моем приложении кнопка поиска панели навигации настроена следующим образом:

static navigatorButtons = {
    leftButtons: [
        {
            id: 'back-nav-button',
            icon: require('../assets/images/icons/arrow-left.png')
        }
   ]
};

Кнопка работает как на iOS и Android, но на iOS она синяя. Я понимаю, что это желаемое поведение и что цвет можно изменить, установив navBarButtonColor, но проблема в том, что это разноцветная кнопка - значит, я хочу, чтобы кнопка просто содержала цвета изображения PNG, а не navBarButtonColor,

Я пытался установить navBarButtonColor в null, transparent, но ничего не работает.

Итак, мой вопрос, есть ли способ заставить значки навигационной панели принимать цвет PNG, как в случае с Android?

Шаги по воспроизведению / фрагменты кода / скриншоты

Просто запустите любое приложение RNN на iOS с помощью простого static navigatorButtons = ... используя местный разноцветный PNG, и вы увидите, что цвета значка будут перезаписаны.


Среда

  • React Native Navigation версия: 1.1.473
  • React Родная версия: 0.55.3
  • Платформа (ы) (iOS, Android или оба?): IOS
  • Информация об устройстве (Симулятор / Устройство? Версия ОС? Отладка / Выпуск?): Android Emulator on Debug

2 ответа

На iOS UIBarButtonItem использует изображения, созданные с помощью альфа-канала исходного изображения. Чтобы отобразить реальное изображение (а не маску альфа-канала), вам нужно изменить режим рендеринга вашего изображения на alwaysOriginal

Хотя, глядя на документацию класса React Native Image, я не вижу renderingMode имущество

Нам удалось найти обходной путь для этого. Установив disableIconTint свойство кнопки для true, он отключает переопределение цвета значка. Смотрите следующий пример:

static navigatorButtons = {
    leftButtons: [
        {
            id: 'back-nav-button',
            icon: require('../assets/images/icons/arrow-left.png'),
            disableIconTint: true // Add this line to use the PNG's color
        }
   ]
};
Другие вопросы по тегам