iOS 關(guān)于 TabBarController 的一些設(shè)置

在使用系統(tǒng) tabbar 時,你會在 TabBarController 的 viewDidLoad 方法中創(chuàng)建 tabbar 所要管理的視圖控制器對象, 如果需求所要求的 tabbaritem 和 title 在選中和未選中狀態(tài)下均為純色,你便可以使用以下代碼簡單快捷的完成

      /*
       tabbaritem 的 normalimage(默認灰色) 和 selectedimage(默認藍色)
       1.normalimage 和 selectedimage 使用同一張圖片,不要求顏色
       1.normalimage (和 normalText )使用默認灰色
       2.selectedimage (和 selectedText )通過 tabbar.tintcolor 統(tǒng)一控制
       */
      
      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 在選中或未選中狀態(tài)下不為純色,或者你更傾向于使用 UI 提供的選中和未選中狀態(tài)下的原生圖片,你便可以通過以下代碼完成

      /*
       tabbaritem 的 normalimage(默認灰色) 和 selectedimage(默認藍色)
       1.normalimage 和 selectedimage 分別使用對應(yīng)圖片,并指定其渲染模式為 AlwaysOriginal
       2.normalText (默認灰色)和 selectedText 通過 TitleTextAttributes 控制顏色
       */
      let sbArray = ["Home","Classify","Discover","Mine"]
      let vcArray = ["HomeController","ClassifyController","DiscoverController","MineController"]
      let titleArray = ["首頁","分類","發(fā)現(xiàn)","我的"]
      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~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容