我試圖改變標籤欄項目圖像的顏色繪製灰度圖像,這個我使用下面的代碼:的iOS標籤欄自定義項目圖像,標籤欄左側
// Generate a tinted unselected image based on image passed via the storyboard.
for (UIViewController *vc in tabBarController.viewControllers) {
UITabBarItem *item = vc.tabBarItem;
UIImage *image = item.image;
UIImage *imageSel = [image imageWithColor:selectedColor];
UIImage *imageUnsel = [image imageWithColor:unselectedColor];
// Next is not working to set unselected image!
// But setFinishedSelectedImage does.
//item.selectedImage = imageSel;
item.image = imageSel;
//[item setFinishedSelectedImage:imageSel withFinishedUnselectedImage:imageUnsel];
}
UITabBarItem *item = tabBarController.moreNavigationController.tabBarItem;
UIImage *image = [UIImage imageNamed:@"menu-more"];
UIImage *imageSel = [image imageWithColor:selectedColor];
UIImage *imageUnsel = [image imageWithColor:unselectedColor];
item.image = imageSel;
// [item setFinishedSelectedImage:imageSel withFinishedUnselectedImage:imageUnsel];
imageWithColor:是的UIImage擴展使用原始圖像的alpha值生成具有顏色的圖像。
代碼首次執行,一切都很好。
更改顏色(調用上面的代碼)後,所有標籤欄項目都顯示在標籤欄左側的文本中。在模擬器和設備(iPhone + iPad)中都會發生。這是一個錯誤?
這隻會改變所選項目的顏色,但未選中的項目將顯示爲灰色。已經嘗試過。 – Borzh
我可以知道你使用tabbaritem圖像的選定和未選擇的顏色。 – Rajesh
是的,兩者,實際上未選中的顏色與選定的顏色相同,但只有0.5的alpha。 – Borzh