在使用系统 tabbar 时,你会在 TabBarController 的 viewDidLoad 方法中创建 tabbar 所要管理的视图控制器对象, 如果需求所要求的 tabbaritem 和 title 在选中和未选中状态下均为纯色,你便可以使用以下代码简单快捷的完成
/*
tabbaritem 的 normalimage(默认灰色) 和 selectedimage(默认蓝色)
1.normalimage 和 selectedimage 使用同一张图片,不要求颜色
1.normalimage (和 normalText )使用默认灰色
2.selectedimage (和 selectedText )通过 tabbar.tintcolor 统一控制
*/
let sbArray = ["First","Second"]
let vcArray = ["FirstController","SecondController"]
let titleArray = ["首页","分类"]
for i in 0..<sbArray.count {
let viewCtrl = UIStoryboard(name: sbArray[i],bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier(vcArray[i])
let imageStr = "tabbar_"+String(i)
viewCtrl.tabBarItem = UITabBarItem(title: titleArray[i], image: UIImage(named: imageStr), selectedImage: UIImage(named:imageStr))
self.addChildViewController(UINavigationController(rootViewController:viewCtrl))
}
self.tabBar.tintColor = UIColor.orangeColor()
如果需求所要求的 tabbaritem 或 title 在选中或未选中状态下不为纯色,或者你更倾向于使用 UI 提供的选中和未选中状态下的原生图片,你便可以通过以下代码完成
/*
tabbaritem 的 normalimage(默认灰色) 和 selectedimage(默认蓝色)
1.normalimage 和 selectedimage 分别使用对应图片,并指定其渲染模式为 AlwaysOriginal
2.normalText (默认灰色)和 selectedText 通过 TitleTextAttributes 控制颜色
*/
let sbArray = ["Home","Classify","Discover","Mine"]
let vcArray = ["HomeController","ClassifyController","DiscoverController","MineController"]
let titleArray = ["首页","分类","发现","我的"]
for i in 0..<sbArray.count {
let viewCtrl = UIStoryboard(name: sbArray[i],bundle: NSBundle.mainBundle()).instantiateViewControllerWithIdentifier(vcArray[i])
let normalImageStr = "tabbar_normal_"+String(i)
let selectedImageStr = "tabbar_selected_"+String(i)
viewCtrl.tabBarItem = UITabBarItem(title: titleArray[i], image: UIImage(named: normalImageStr)?.imageWithRenderingMode(.AlwaysOriginal), selectedImage: UIImage(named:selectedImageStr)?.imageWithRenderingMode(.AlwaysOriginal))
self.addChildViewController(UINavigationController(rootViewController:viewCtrl))
}
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.init(red: 243/255, green: 62/255, blue: 27/255, alpha: 1.0)], forState: UIControlState.Selected)
期待你的评论建议O(∩_∩)O~