前言:?
? ? ? ? 使用UITabBarController做控制器的時候發(fā)現(xiàn)UI給的圖標背系統(tǒng)渲染成了藍色!(QNMGBD要你丫多事??)然后網(wǎng)上搜索解決方案,現(xiàn)在將方案總結(jié)下。
問題:
UITabBarController控制器item被系統(tǒng)默認渲染為藍色
解決方案:
方案一:
在controller中調(diào)用方法將文字和圖片進行統(tǒng)一渲染:
[self.tabBarController.tabBar setTintColor:[UIColor colorWithHexString:@"#09CCA2"]];
方案二:(這個沒驗證)
使用代碼:
UIImage *selectedImage = [UIImage imageNamed:@"tabBar_essence_click_icon"];
selectedImage = [mSelectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.tabBarItem.selectedImage = selectedImage;
UIImageRenderingModeAutomatic // 根據(jù)圖片的使用環(huán)境和所處的繪圖上下文自動調(diào)整渲染模式。
UIImageRenderingModeAlwaysOriginal // 始終繪制圖片原始狀態(tài)蹦误,不使用Tint Color。UIImageRenderingModeAlwaysTemplate // 始終根據(jù)Tint Color繪制圖片肉津,忽略圖片的顏色信息强胰。
使用SB:(這個驗證了)
1、找到Item圖標
2妹沙、找到圖標的Render AS 屬性 并選擇為Original Image (這里的作用是讓系統(tǒng)不要對圖片進行處理使用原始圖片)
總結(jié):這兩種方法的作用都只針對Item的圖標所以設(shè)置后如果不做其他設(shè)定那么文字部分依舊是藍色
所以如果要設(shè)置字體的話還需要如下代碼進行單獨定制(設(shè)定顏色和字體):
[self.tabBarController.tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} forState:UIControlStateSelected];
參考:
HASH顏色:
iOS開發(fā)-一句代碼輕松實現(xiàn)十六進制顏色(#開頭)轉(zhuǎn)RGB顏色
UITabBarController設(shè)置選中時圖片和文字的顏色
ios8中UITabbarController的圖片顏色處理
深入淺出理解分類(category)和類擴展(extension)
iOS分類(category),類擴展(extension)—史上最全攻略