iOS 关于 TabBarController 的一些设置

2016-08-19  本文已影响0人  Sparkle_S

在使用系统 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~

上一篇下一篇

猜你喜欢

热点阅读