【问题标题】:Image will not render on UITabBar Item iOS9图像不会在 UITabBar Item iOS9 上呈现
【发布时间】:2015-10-01 14:10:26
【问题描述】:

这可能是也可能不是因为 iOS9.0.2 而遇到的问题。我有一个图像 .png 文件,我试图将其设置为我的标签栏图标之一。我可以为该图标设置其他图像,但不会设置此特定图标。这是屏幕截图:

您可以在这里看到,我清楚地将图像设置为 UITabBar 选项卡,但是当我在 iPhone 上运行它时,它完全不可见(不存在)。我假设这个 .png 文件有问题,因为我可以轻松设置其他图像。这里有什么问题?

编辑 这是我添加到 AppDelegate.m 文件中的附加代码,以确保正确的呈现模式。

UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];
tabBarItem4.selectedImage = [[UIImage imageNamed:@"blah.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];
tabBarItem4.image = [[UIImage imageNamed:@"blah.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ];

PS 我还通过 AppDelegate 以编程方式将图像添加到 tabBar 索引,但它仍然没有出现。所以请不要用程序化的答案来回答。不是问题

【问题讨论】:

  • 您是否尝试更改图像渲染模式的设置?您可以通过编程方式或使用您的资产集合来执行此操作。我遇到过这种问题,图像在模板模式下 [不正确] 渲染,因此没有显示。
  • 使用您的资产集合?不知道那是什么,我将如何以编程方式更改渲染模式?我正要查找问题。
  • 您可以将图像添加到您的资产集合并从那里更改默认渲染模式,或者在代码中您可以使用[[UIImage imageNamed:@"blah.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]Reference here.
  • 抱歉最后一个问题,这段代码会去哪里?由于图像本身只是包含在图像文件夹中,并且图像是在导航控制器中设置的?
  • 只需使用您设置 tabBar 图像的那段代码。它将返回一个 UIImage。如果您使用资产集合(我觉得更容易),您可以在此处设置渲染模式,更改“渲染为”参数(example here),然后使用情节提要在 tabBar 上选择它。

标签: ios image uitabbar


【解决方案1】:

UITabBar 使用UIImageRenderingModeAlwaysTemplate 渲染图像,如果您没有为此正确准备图像,则有时无法正常工作。

要使用原始图像,将图像的渲染模式设置为“原始”

以编程方式,只需使用 UIImage 的 imageWithRenderingMode: 方法:

tabBarItem.image = [[UIImage imageNamed:@"blah.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

如果您使用 XCAssets 管理图像,请选择图像并将“渲染为”更改为“原始图像”(example)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 2020-02-12
    • 2018-06-23
    • 2014-01-03
    • 2017-12-10
    相关资源
    最近更新 更多