2011-06-22 45 views
0

我在我的應用程序動態地添加一個選項卡欄,如下所示: -更改定製的標籤欄的顏色在iphone

if (isLogin == TRUE) { 

     rootController = [[SettingsViewController alloc] init]; 
     tabTitle = @"Settings";  
     navTitle = @"Settings"; 
     tabImage = [UIImage imageNamed:@"icon1.png"]; 

} 
else 
{ 

     root =TRUE; 
     rootController = [[RootViewController alloc] init]; 
     tabTitle = @"Home";  
     navTitle = @"Login"; 
     tabImage = [UIImage imageNamed:@"icon1.png"]; 
} 

break; 

case 1: 
    rootController = [[AboutUs alloc] init]; 
    tabTitle = @"AboutUs";  
    navTitle = @"AboutUs"; 
    tabImage = [UIImage imageNamed:@"icon2.png"];  
    break;   
case 2: 
    rootController = [[ContactUsViewController alloc] init]; 
    tabTitle = @"Contact Us";  
    navTitle = @"Contact Us"; 
    tabImage = [UIImage imageNamed:@"icon3.png"];  
    break;   
case 3: 
    rootController = [[MoreViewController alloc] init]; 
    tabTitle = @"More";  
    navTitle = @"More"; 
    tabImage = [UIImage imageNamed:@"icon4.png"];  
    break; 

rootController.view.hidden = FALSE; 
UINavigationController *subController = [[UINavigationController alloc] 
initWithRootViewController:rootController]; 
subController.navigationBar.tintColor = [UIColor colorWithRed:(110.0/255.0) green:(184.0/255.0) blue:(71.0/255.0) alpha:1.0]; 
subController.navigationBar.topItem.title = navTitle;    
subController.title = tabTitle; 
subController.navigationItem.hidesBackButton =YES; 
subController.tabBarItem.image = tabImage; 
NSLog(@"%@",subController); 

[controllers addObject:subController]; 
NSLog(@"%@",controllers); 
[subController release];  
[rootController release]; 

因此,它被示出作爲以下形式的標籤: -

enter image description here

但我想cutomise默認檢測到標籤欄(藍色)的顏色爲橙色,並希望標籤欄看起來像這樣: -

enter image description here

請幫幫我;我怎樣才能做到這一點?

+0

你應該接受的Rahul Vyas說答案 – Legolas

回答

-1

您不能更改tabbar的默認顏色。這是我們在iOS應用程序中必須遵循的用戶界面指南之一。

當我無法更改標籤欄的默認顏色時,我已經評論過這個問題。現在我們可以更改標籤欄的默認顏色。

+2

它是可以改變標籤欄按鈕的顏色。看到我的答案。 –

+0

@Rahul感謝您分享這些信息。但仍然有機會,該應用程序可能會被蘋果拒絕? – Swapna

+0

你可以在UITabBar上看到許多在應用商店中有自定義顏色的應用程序。 –

2

您可以更改標籤欄顏色和許多在蘋果中批准的應用程序。您可以繼承UITabBar並根據需要更改顏色。在你的情況下,你需要繼承UITabBarItem。這裏是一個計算器後看看Custom colors in UITabBar

+0

感謝您的答覆。我已經在我的appdelegate方法中添加了上述(我的代碼),因爲我希望這個標籤欄能夠在我的整個應用程序中工作,並且我已經檢查過您的回覆但它確實有效。請詳細解釋一下做它。或者可以告訴我另一種方式去做它。請幫助我 –

+0

@shweta仔細閱讀這篇文章http://blog.theanalogguy.be/2010/10/06/custom-colored-uitabbar-icons/ –

0

如果它沒有被允許自定義標籤欄,那麼蘋果將打破自己的準則與自己的Game Center應用程序(它的設計看起來非常漂亮BTW)

0

在AppDelegete.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
[[UITabBar appearance] setSelectedImageTintColor:[UIColor redColor]]; 
return YES; 
} 
0

您也可以嘗試改變,而不是改變顏色的TabBar圖標圖像,

之類的。

中的TabBar控制器的委託方法

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 

{ 
    if([tabBarController selectedIndex] == 0) 
    { 
     [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]]; 
    }  
} 

通過這個

你可以改變你tabbaritem圖像。

或者你可以在你的視圖控制器的init(或viewWillAppear中)的方法直接使用,如

 [viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];