最近将Xcode的Base SDK更新到iOS8.0以後,發現使用的系統級的UITabBar,圖示在selected狀态都變成藍色,很郁悶。
查找資料後發現UITabBarItem.h裡面說的很清楚,
- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage NS_DEPRECATED_IOS(5_0,7_0,"Use initWithTitle:image:selectedImage: or the image and selectedImage properties along with UIImageRenderingModeAlwaysOriginal");
UIImageRenderingModeAlwaysOriginal( 始終繪制圖檔原始狀态)是關鍵,即需要對圖檔多做一次小小的處理,即
//構造TabBarItem:title-标題、image-圖檔、selectedImage-選中時圖檔
- (UITabBarItem *)itemWithTitle:(NSString *)title image:(UIImage *)image selectedImage:(UIImage *)selectedImage
{
//始終繪制圖檔原始狀态
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
selectedImage = [selectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UITabBarItem *tabBarItem = [[UITabBarItemalloc]initWithTitle:titleimage:imageselectedImage:selectedImage];
return tabBarItem;
}
這樣,在建構TabBarItem時,直接調用這個方法就可以了。