2015-06-26 73 views
0

我開發了具有5個選項卡的tabbar base應用程序,我試圖在每個選項卡上設置圖像。所以我使用了由xcode提供的用於設置圖像的功能,但是我沒有得到我想要的確切結果。在UITabBar控制器上設置圖像

,這裏是我的TabBar控制器 enter image description here

在這種情況下,我得到的灰色圖像,但我的實際圖像不花白的彩色圖像。所以請任何一個有解決這個問題的解決方案。我想設置圖像作爲reties我有。

謝謝。

+0

可能重複的[如何更改標籤欄上不活動的圖標/文本顏色?](http://stackoverflow.com/questions/22767098/how-to-change-inactive-icon-text-color-上製表巴) –

回答

0

從iOS 7開始,您可以選擇將應用中的任何圖像視爲模板或模板圖像。當您選擇將圖像作爲模板處理時,系統會忽略圖像的顏色信息,並根據圖像中的alpha值創建圖像模板。 UIImage有一個名爲renderingMode的新屬性默認呈現模式爲UIImageRenderingModeAutomatic。從我的經驗這通常意味着像圖像模板,所以當你初始化你的形象,你需要UIKit中的用戶界面目錄

UIImage *image = [UIImage imageNamed:@"someimage"]; 
UIImage *thisoneshouldbeused = [image imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal] 

見模板圖像獲取更多信息

0

@Inertiatic有很大的答案,可以使用-imageWithRenderingMode:

NSArray *images = @[@"[FIRST IMAGE]", @"[SECOND IMAGE]", …]; 
NSArray *selectedImages = @[@"[FIRST SELECTED IMAGE]", @"[SECOND SELECTED IMAGE]", …]; 

UITabBarController *tabBarController = (id)self.window.rootViewController; 

for (NSInteger i = 0; i < tabBarController.tabBar.items.count; ++i) { 
    UITabBarItem *item in tabBarController.tabBar.items[i]; 

    item.image = [[UIImage imageNamed:images[i]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
    item.selectedImage = [[UIImage imageNamed:selectedImages[i]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
}