【问题标题】:UITabBar custom icon color is not getting shownUITabBar 自定义图标颜色未显示
【发布时间】:2015-01-09 09:45:38
【问题描述】:

我在 iOS 应用程序中使用 UITabBar。我已将图像设置为 UITabBar 项目。代码是-

self.mainTabBar.delegate = self;
mainTabBar.tintColor = nil;

[[mainTabBar.items objectAtIndex:0] setFinishedSelectedImage:[UIImage imageNamed:@"ic_1.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_1.png"]];
[[mainTabBar.items objectAtIndex:1] setFinishedSelectedImage:[UIImage imageNamed:@"ic_2.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_2.png"]];
[[mainTabBar.items objectAtIndex:2] setFinishedSelectedImage:[UIImage imageNamed:@"ic_3.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_3.png"]];
[[mainTabBar.items objectAtIndex:3] setFinishedSelectedImage:[UIImage imageNamed:@"ic_4.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_4.png"]];
[[mainTabBar.items objectAtIndex:4] setFinishedSelectedImage:[UIImage imageNamed:@"ic_5.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ic_5.png"]];

这是标签栏的代码。它显示像 - 实际的图标图像是这样的(颜色是这样的)-

如何显示图标的实际颜色?

【问题讨论】:

    标签: ios ios7 uitabbar


    【解决方案1】:

    如果你使用的是 iOS 8,你可以这样使用它。

    UIImage *image1 = [[UIImage imageNamed:@"message"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    
    tabBarItem1.image = image1;
    tabBarItem1.selectedImage = image11;
    

    这里是来源:UITabBarItem/selectedImage

    默认情况下,实际选择的图像是自动创建的 源图像中的 alpha 值。为了防止系统着色, 使用 UIImageRenderingModeAlwaysOriginal 提供图像。

    【讨论】:

      【解决方案2】:

      从他们的视图控制器中设置UITabBarItems。不要直接设置它们。

      例如:

      UITableViewController *searchTableCon = [[UITableViewController alloc]init];
      UINavigationController *searchNavCon = [[UINavigationController alloc]initWithRootViewController:searchTableCon];
      
      searchTableCon.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Search"
                                                          image:[UIImage imageNamed:@"Search"]
                                                  selectedImage:[UIImage imageNamed:@"Search"]];
      

      【讨论】:

        【解决方案3】:

        您必须为此做以下事情。

        UIImage * selectedImage = [UIImage imageNamed:@"selected_image.png"];
        selectedImage =    [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
        viewCtrl.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Title" image:selectedImage selectedImage:selectedImage];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-10-15
          • 2021-09-24
          • 1970-01-01
          • 1970-01-01
          • 2013-09-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多