在 UITabBar 控制器上设置图像
Posted
技术标签:
【中文标题】在 UITabBar 控制器上设置图像【英文标题】:Set Image on UITabBar Controller 【发布时间】:2015-06-26 10:09:12 【问题描述】:我已经开发了有 5 个标签的标签栏基础应用程序,我正在尝试在每个标签上设置图像。所以我使用了 xcode 提供的 inbuid 功能来设置图像,但我没有得到我想要的确切结果。
这是我的 TabBar 控制器
在这种情况下,我得到的是灰色图像,但我的实际图像不是灰色的,而是彩色图像。所以请任何人有解决这个问题的解决方案。我想将图像设置为我拥有的 reties。
【问题讨论】:
How to change inactive icon/text color on tab bar?的可能重复 【参考方案1】:从 ios 7 开始,您可以选择将应用中的任何图像视为模板(或模板)图像。当您选择将图像视为模板时,系统会忽略图像的颜色信息并根据图像中的 alpha 值创建图像模板。 UIImage
有一个名为renderingMode
的新属性,默认呈现模式为UIImageRenderingModeAutomatic
。根据我的经验,它通常意味着像图像这样的模板,所以当你初始化你的图像时,你需要
UIImage *image = [UIImage imageNamed:@"someimage"];
UIImage *thisoneshouldbeused = [image imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal]
有关更多信息,请参阅 UIKit 用户界面目录中的模板图像
【讨论】:
【参考方案2】:@Inertiatic 有一个很好的答案,请使用-imageWithRenderingMode:
。
NSArray *images = @[@"[FIRST IMAGE]", @"[SECOND IMAGE]", …];
NSArray *selectedImages = @[@"[FIRST SELECTED IMAGE]", @"[SECOND SELECTED IMAGE]", …];
UITabBarController *tabBarController = (id)self.window.rootViewController;
for (NSInteger i = 0; i < tabBarController.tabBar.items.count; ++i)
UITabBarItem *item in tabBarController.tabBar.items[i];
item.image = [[UIImage imageNamed:images[i]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
item.selectedImage = [[UIImage imageNamed:selectedImages[i]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
【讨论】:
以上是关于在 UITabBar 控制器上设置图像的主要内容,如果未能解决你的问题,请参考以下文章