iOS 7.1和Xcode 5.1与UITabBar有关

时间:2014-04-16 18:39:17

标签: ios uitabbar tint

我最近将Xcode更新为5.1,现在标签栏出现问题。在iOS 7和Xcode 5.0中,我使用了以下代码:

// Graph tab icon
    UITabBar *tabBar = tabBarController.tabBar;
    UITabBarItem *graphTabIcon = [tabBar.items objectAtIndex:0];
    UIImage *noRenderGraph = [[UIImage imageNamed:@"graph"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [graphTabIcon setImage:noRenderGraph];
    [graphTabIcon setTitle:@"Graph"];
    [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
    // Friends tab icon
    UITabBarItem *friendsTabIcon = [tabBar.items objectAtIndex:1];
    UIImage *noRenderFriends = [[UIImage imageNamed:@"group"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [friendsTabIcon setImage:noRenderFriends];
    [friendsTabIcon setTitle:@"Friends"];
    // Settings tab icon
    UITabBarItem *settingsTabIcon = [tabBar.items objectAtIndex:2];
    UIImage *noRenderSettings = [[UIImage imageNamed:@"settings"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [settingsTabIcon setImage:noRenderSettings];
    [settingsTabIcon setTitle:@"Settings"];
    // Info tab icon
    UITabBarItem *infoTabIcon = [tabBar.items objectAtIndex:3];
    UIImage *noRenderinfo = [[UIImage imageNamed:@"info"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [infoTabIcon setImage:noRenderinfo];
    [infoTabIcon setTitle:@"Info"];

结果如下:

enter image description here

但是现在使用7.1和Xcode 5.1我得到了这个: enter image description here

我也试过这段代码:

[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];

在iOS 7.1上看起来很棒,但在7上最终变成了浅棕色。

那么我怎样才能使它适用于两者?

1 个答案:

答案 0 :(得分:1)

基于Leo Natan的评论,我做到了这一点:

修改

我最后只是将两个代码段添加到一起,它的工作原理是我想要的

App委托

{
    // iOS 7 method
    // Graph tab icon
    UITabBar *tabBar = tabBarController.tabBar;
    UITabBarItem *graphTabIcon = [tabBar.items objectAtIndex:0];
    UIImage *noRenderGraph = [[UIImage imageNamed:@"graph"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [graphTabIcon setImage:noRenderGraph];
    [graphTabIcon setTitle:@"Graph"];
    [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor whiteColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
    // Friends tab icon
    UITabBarItem *friendsTabIcon = [tabBar.items objectAtIndex:1];
    UIImage *noRenderFriends = [[UIImage imageNamed:@"group"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [friendsTabIcon setImage:noRenderFriends];
    [friendsTabIcon setTitle:@"Friends"];
    // Settings tab icon
    UITabBarItem *settingsTabIcon = [tabBar.items objectAtIndex:2];
    UIImage *noRenderSettings = [[UIImage imageNamed:@"settings"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [settingsTabIcon setImage:noRenderSettings];
    [settingsTabIcon setTitle:@"Settings"];
    // Info tab icon
    UITabBarItem *infoTabIcon = [tabBar.items objectAtIndex:3];
    UIImage *noRenderinfo = [[UIImage imageNamed:@"info"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [infoTabIcon setImage:noRenderinfo];
    [infoTabIcon setTitle:@"Info"];

    // iOS 7.1 method
    [[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
}