【问题标题】:Set Image on UITabBar Controller在 UITabBar 控制器上设置图像
【发布时间】:2015-06-26 10:09:12
【问题描述】:

我已经开发了有 5 个标签的标签栏基础应用程序,我正在尝试在每个标签上设置图像。所以我使用了 xcode 提供的 inbuid 功能来设置图像,但我没有得到我想要的确切结果。

这是我的 TabBar 控制器

在这种情况下,我得到的是灰色图像,但我的实际图像不是灰色的,而是彩色图像。所以请任何人有解决这个问题的解决方案。我想将图像设置为我拥有的 reties。

【问题讨论】:

标签: ios xcode


【解决方案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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多