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);
在專案中使用UITabBarController的時候, 每個UITabBarItem都可以展示對應的圖片。
UITabBarItem有兩種狀態, 即 選中/ 非選中狀態。
如果用storyboard設定圖片, 那麼設定的是選中狀態的圖片, 並且, 它會自動的填充為深藍色. (就是 default color)至於非選中狀態呢, 它會自動的變成灰色。
這大大影響了美觀。
如下:
我們想要的效果, 應該是這樣的:
如果要變成這樣, 需要在UITabBarController中加入如下程式碼:
- NSArray *items = self.tabBar.items;
- UITabBarItem *homeItem = items[0];
- homeItem.image = [[UIImage imageNamed:@"tab_buddy_nor.png"]
- imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
- homeItem.selectedImage = [[UIImage imageNamed:@"tab_buddy_press.png"]
- imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
- UITabBarItem *qqItem = items[1];
- qqItem.image = [[UIImage imageNamed:@"tab_me_nor.png"]
- imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
- qqItem.selectedImage = [[UIImage imageNamed:@"tab_me_press.png"]
- imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];