【问题标题】:Customize UITabBarItem in UINavigationController在 UINavigationController 中自定义 UITabBarItem
【发布时间】:2014-05-13 14:37:05
【问题描述】:

如何更改 UITabBarItem 的背景颜色?我需要这样的东西:

(钱包下的颜色)

【问题讨论】:

    标签: ios uinavigationcontroller uitabbaritem


    【解决方案1】:

    添加图片

        UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
    
        //tab1
        UIImage *selectedImage = [UIImage imageNamed:@"home-tab-selected"];
        UIImage *unselectedImage = [UIImage imageNamed:@"home2-tab"];
        MyTabBar *tabBar = (MyTabBar *)tabController.tabBar;
        UITabBarItem *item1 = [tabBar.items objectAtIndex:0];
        [item1 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
    
        //tab2
        selectedImage = [UIImage imageNamed:@"customers-tab-selected"];
        unselectedImage = [UIImage imageNamed:@"customers-tab"];
        UITabBarItem *item2 = [tabBar.items objectAtIndex:1];
        [item2 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
    
        //tab3
        selectedImage = [UIImage imageNamed:@"maps-tab-selected"];
        unselectedImage = [UIImage imageNamed:@"maps-tab"];
        UITabBarItem *item3 = [tabBar.items objectAtIndex:2];
        [item3 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
    
        //tab4
        selectedImage = [UIImage imageNamed:@"reports-tab-selected"];
        unselectedImage = [UIImage imageNamed:@"reports-tab"];
        UITabBarItem *item4 = [tabBar.items objectAtIndex:3];
        [item4 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
    
        //tab5
        selectedImage = [UIImage imageNamed:@"orders-tab-selected"];
        unselectedImage = [UIImage imageNamed:@"orders-tab"];
        UITabBarItem *item5 = [tabBar.items objectAtIndex:4];
        [item5 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
    
    
        if ([tabBar respondsToSelector:@selector(setBackgroundImage:)])
        {
            // ios 5 code here
            [tabBar setBackgroundImage:[UIImage imageNamed:@"tab-bg"]];
    
        }  
    

    【讨论】:

      【解决方案2】:

      看看UITabbarItem的外观代理,特别是-selectedImage(doc)方法。 请注意,在 iOS7 中,大多数图像都呈现为模板(我不知道在标签栏项目中),因此您应该指定它们的呈现模式。
      类似的东西:

      [[UIImage imageNamed:@"wallet"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
      

      这些方法在 iOS7 上是安全的,如果您需要在较低的目标上部署,最好检查它们是否可用,否则您的应用会崩溃。

      【讨论】:

        猜你喜欢
        • 2023-01-23
        • 1970-01-01
        • 2021-11-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-20
        相关资源
        最近更新 更多