在默认 uitabbar 中为选定和取消选定的统计信息设置彩色图像

Set colourful images in default uitabbar for both selected and deselected stats

current tabbar

expected tabbar

我们如何将彩色图像设置为选定和取消选定统计信息的默认 uitabbaritem。

您可以子类化 UITabBarController 并为每个状态手动设置每个图像。

例如:

- (void)viewDidLoad {

    [super viewDidLoad];

    [(self.tabBar.items)[0] setImage:[UIImage imageNamed:@"colorfulHouse"]];
    [(self.tabBar.items)[0] setSelectedImage:[UIImage imageNamed:@"colorfulHouseSelected"]];

    [(self.tabBar.items)[1] setImage:[UIImage imageNamed:@"colorfulRecyclingBin"]];
    [(self.tabBar.items)[1] setSelectedImage:[UIImage imageNamed:@"colorfulRecyclingBinSelected"]];
}

您可以使用 barTintColor 设置 UITabBar 的背景颜色

//Sample color codes
self.tabBarController?.tabBar.barTintColor = UIColor(red: 10, green: 10, blue: 10, alpha: 1.0))

并且您可以使用对 tabBar 项目的迭代将栏项目设置为正常和选定图像

    for barItem in (self.tabBarController?.tabBar.items)! {

        // Default image
        barItem.image = UIImage(named: "home")?.imageWithRenderingMode(.AlwaysOriginal)

        // By default Selected image will take tint color set in self.tabBar.tintColor
        barItem.selectedImage = UIImage(named: "home_selected")?.imageWithRenderingMode(.AlwaysOriginal)
    }

通过将图像的渲染模式设置为 AlwaysOriginal 可以确保色调颜色不会影响图像。

很简单,创建一个 UITabBarController 并在故事板中将其设置为标签栏控制器的 class,darg tabBar 并创建一个出口让我们说 mainTabBar 然后覆盖 viewWillAppear 方法并将其放入其中。

for item in mainTabBar.items!{

        item.image = item.image!.imageWithRenderingMode(.AlwaysOriginal)
        item.selectedImage = item.image
    }

别忘了在最后打super.viewWillAppear(animated)