標籤:
UITbarController之前有在這篇文章講解:http://www.cnblogs.com/niit-soft-518/p/4447940.html
如果自訂了UITabBarItem的圖片,用上述文章建立的時候,發現選中的圖的邊框顏色預設是藍色的,
解決這個問題就需要設定 UIImage的渲染模式
imageWithRenderingMode
設定UIImage的渲染模式:UIImage.renderingMode著色(Tint Color)是iOS7介面中的一個.設定UIImage的渲染模式:UIImage.renderingMode重大改變,你可以設定一個UIImage在渲染時是否使用當前視圖的Tint Color。UIImage新增了一個唯讀屬性:renderingMode,對應的還有一個新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚舉值來設定圖片的renderingMode屬性。該枚舉中包含下列值:UIImageRenderingModeAutomatic // 根據圖片的使用環境和所處的繪圖上下文自動調整渲染模式。 UIImageRenderingModeAlwaysOriginal // 始終繪製圖片原始狀態,不使用Tint Color。 UIImageRenderingModeAlwaysTemplate // 始終根據Tint Color繪製圖片,忽略圖片的顏色資訊。
如需使用自訂色彩的選中圖時,需設定UIImageRenderingModeAlwaysOriginal。樣本:UITabBarItem *tabBar ; tabBar. selectedImage =[[UIImage imageNamed:@"bar_icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
//初始化controllers { FourViewController *one=[[FourViewController alloc]init]; UITabBarItem *itemOne=[[UITabBarItem alloc]initWithTitle:@"訊息" image:[UIImage imageNamed:@"btn_message_nor"] selectedImage:[[UIImage imageNamed:@"btn_message_sel"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; one.tabBarItem=itemOne; [itemOne setTitleTextAttributes:[NSDictionary dictionaryWithObject:KDEFAULT_COLOE forKey:NSForegroundColorAttributeName] forState:UIControlStateHighlighted]; [controllers addObject:one]; } { FiveViewController *five=[[FiveViewController alloc]init]; UITabBarItem *itemFive=[[UITabBarItem alloc]initWithTitle:@"我的" image:[UIImage imageNamed:@"btn_me_nor"] selectedImage:[[UIImage imageNamed:@"btn_me_sel"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; five.tabBarItem=itemFive; [itemFive setTitleTextAttributes:[NSDictionary dictionaryWithObject:KDEFAULT_COLOE forKey:NSForegroundColorAttributeName] forState:UIControlStateHighlighted]; [controllers addObject:five]; }
iOS UITabBarItem 選中圖的顏色,設定UIimage的渲染模式