iOS开发- UITabBarItem自定义图片

1:如图一下效果

iOS开发- UITabBarItem自定义图片_第1张图片



代码如下:

QRcodeViewController *threeViewController

    = [[QRcodeViewControlleralloc]init];

    UINavigationController *threeNavigationController

    = [[UINavigationControlleralloc]initWithRootViewController:threeViewController];

    threeNavigationController.navigationBar.barStyle =UIBarStyleBlack;

    

    UIImage*  image = [[UIImageimageNamed:@"btn_saoyisao_default"]

                     imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; //这两个地方一定要加上


    UIImage*  selectedImage = [[UIImageimageNamed:@"btn_saoyisao_enter"]

                     imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];


    UITabBarItem* tabBarItemL = [[UITabBarItemalloc]initWithTitle:nil 

                                                     image:imageselectedImage:selectedImage];

    threeNavigationController.tabBarItem=tabBarItemL;

    threeNavigationController.tabBarItem.imageInsets =UIEdgeInsetsMake(5,0, -5,0);



2:去除灰色


在项目中使用UITabBarController的时候, 每个UITabBarItem都可以展示对应的图片。

UITabBarItem有两种状态, 即 选中/ 非选中状态。

如果用storyboard设置图片, 那么设置的是选中状态的图片, 并且, 它会自动的填充为深蓝色. (就是 default color)至于非选中状态呢, 它会自动的变成灰色。  

这大大影响了美观。

如下:

iOS开发- UITabBarItem自定义图片_第2张图片


我们想要的效果, 应该是这样的:

iOS开发- UITabBarItem自定义图片_第3张图片


如果要变成这样, 需要在UITabBarController中加入如下代码:

  1. NSArray *items = self.tabBar.items;  
  2. UITabBarItem *homeItem = items[0];  
  3. homeItem.image = [[UIImage imageNamed:@"tab_buddy_nor.png"] 
  4.                            imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  

  1. homeItem.selectedImage = [[UIImage imageNamed:@"tab_buddy_press.png"] 
  2.                            imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  
  3.   
  4. UITabBarItem *qqItem = items[1];  
  5. qqItem.image = [[UIImage imageNamed:@"tab_me_nor.png"]
  6.                 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  

  7. qqItem.selectedImage = [[UIImage imageNamed:@"tab_me_press.png"] 
  8.                 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];  

你可能感兴趣的:(ios)