天天看點

iOS8 UITabBar圖示變藍色

        最近将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時,直接調用這個方法就可以了。