在iphone中更改自定义标签栏的颜色

时间:2011-06-22 05:51:16

标签: 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

但是我想将标签栏(蓝色)的默认检测颜色切换为橙色,并希望标签栏看起来像这样: -

enter image description here

请帮帮我;我怎么能这样做?

5 个答案:

答案 0 :(得分:2)

您可以更改标签栏颜色以及苹果批准的许多应用。您可以继承UITabBar并根据需要更改颜色。在您的情况下,您需要子类UITabBarItem。这是一个stackoverflow帖子,看看Custom colors in UITabBar

答案 1 :(得分:0)

如果不允许自定义标签栏,那么Apple会使用他们自己的Game Center应用程序(其设计看起来很不错)打破他们自己的指导方针。

答案 2 :(得分:0)

  

在AppDelegete.m

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

答案 3 :(得分:0)

您也可以尝试更改标签栏图标而不是更改颜色,

等。

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"]];

答案 4 :(得分:-1)

您无法更改标签栏的默认颜色。这是我们在iOS应用程序中必须遵循的用户界面指南之一。

当无法更改标签栏的默认颜色时,我对此问题发表了评论。现在我们可以更改标签栏的默认颜色。