使用PNG时,iOS会覆盖`navBarButtonColor`

时间:2018-06-27 13:03:58

标签: ios reactjs react-native react-native-navigation wix-react-native-navigation

问题说明

在我的应用程序中,我有一个导航栏搜索按钮,设置如下:

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

该按钮在iOS和Android上均可正常使用,但在iOS上该按钮为蓝色。我知道这是理想的行为,可以通过设置navBarButtonColor来覆盖颜色,但是问题是它是一个多色按钮-意味着我想让按钮仅包含PNG图像的颜色,而不是navBarButtonColor

我尝试将navBarButtonColor设置为nulltransparent,但似乎无济于事。

所以我的问题是,有没有办法像Android上那样使导航栏图标采用提供的PNG的颜色?

复制/代码段/屏幕截图的步骤

只需使用简单的static navigatorButtons = ...使用本地多色PNG在iOS上运行任何RNN应用,您就会看到图标的颜色被覆盖。


环境

  • 反应本机导航版本:1.1.473
  • 反应本机版本:0.55.3
  • 平台(iOS,Android还是同时使用这两种平台?):iOS
  • 设备信息(模拟器/设备?操作系统版本?调试/发布?):调试时使用Android仿真器

2 个答案:

答案 0 :(得分:2)

在iOS上,dotnet add package Microsoft.EntityFrameworkCore.Sqlite使用通过源图像的Alpha通道创建的图像。要显示实际图像(而不是其Alpha通道蒙版),您需要将图像的渲染模式更改为*args

尽管,看着React Native Image class documentation我看不到UIBarButtonItem属性

答案 1 :(得分:0)

我们设法找到了解决方法。通过将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
        }
   ]
};