白色背景的应用程序图标仅在 iOS 上显示为黑色

Mik*_* S. 5 xcode icons react-native

我正在 React Native 中构建,但我不确定这是 RN 问题。

\n\n

仅在 iOS 上遇到了令人费解的异常。我的应用程序图标具有白色背景,不透明,显示为黑色,但仅在 iOS 上。Android 按预期运行。我\xe2\x80\x99ve尝试从Xcode中删除图标,应用程序图标截图

\n\n

删除ios/build文件夹,清除缓存,重新链接,关闭模拟器和地铁,然后重新启动。没有什么。还是黑色。我不知道\xe2\x80\x99s 这里发生了什么。它\xe2\x80\x99s让我发疯。\n而且,我根本不知道\xe2\x80\x99为什么会出现,因为我从ios中删除了它,这显然意味着它\xe2\x80\x99s仍然被缓存某处。一方面,各种像素密度的图标仍然存在。难道在没有1024pt图标的情况下,Xcode 会从其他尺寸中“借用”一个吗?但是,它无法解释黑色背景,因为所有图标都是白色的(已由图标创建者确认)。

\n

小智 0

我在本机 iOS 应用程序中遇到了类似的问题,其中一组白色背景的图标显示为黑色。就我而言,问题的原因是图标在代码 (UIImageRenderingModeAlwaysTemplate) 中设置为渲染为“模板图像”。修复是将其渲染为“原始图像”(UIImageRenderingModeAlwaysOriginal)。

对于您的情况,您可以在两个地方进行检查:

  1. 在“资产目录”部分中,对于相关图标,检查“渲染为”字段的值是否设置为“原始图像”而不是“模板图像”。
  2. 在您的目标 C/Swift 代码中,检查您如何使用此图标。确保从上面的图标创建 UIImage 时,使用 UIImageRenderingModeAlwaysOriginal 模式渲染它。

    NSString* str = [NSString stringWithUTF8String:resourceName.c_str()];
    返回 [[UIImage imageNamed:str] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal ];