美文网首页
swift学习关于tabbar(一)

swift学习关于tabbar(一)

作者: 子非鱼7868 | 来源:发表于2019-04-23 00:01 被阅读0次

对UITabbarController也是比较熟悉的,无论是stroyboard还是纯代码都有接触过,其实对于创建的方式有很多种,我只是记录一些个人常用的方法。
最简单的tabbar就是2-4个item相互点击达到切换控制器的目的。我常用的创建方式如下:
创建方式一

import UIKit
class MainTabbarController: UITabBarController {
    override func viewDidLoad() {
        super.viewDidLoad()
        //设置系统默认的蓝色
        self.tabBar.tintColor = UIColor(red: 0/255, green:169/255, blue:169/255, alpha:1)
        addNormalTabbar()
    }
    // MARK: -FirstNormalTabba 第一种常用的tabbar
    /**
     优点可以拿到单独子控制器 做相应的设置
     */
    func addNormalTabbar() {
        //这里针对updateVc 改变其背景色
        let updateVc = UpdateVC.init()
        updateVc.view.backgroundColor = UIColor.red
        setupOneChildViewController(title: "更新", image: "icon_update", seletedImage: "icon_update_sel", controller: UpdateVC.init())
        setupOneChildViewController(title: "发现", image: "icon_find", seletedImage: "icon_find_sel", controller: FindVC.init())
        setupOneChildViewController(title: "书架", image: "icon_book", seletedImage: "icon_book_sel", controller: BookVC.init())
        setupOneChildViewController(title: "我的", image: "icon_mine", seletedImage: "icon_mine_sel", controller: MineVC.init())
    }
    fileprivate func  setupOneChildViewController(title: String,image: String,seletedImage: String,controller: UIViewController){
        controller.tabBarItem.title = title
        controller.title = title
        //这里设置背景色 是每一个vc设置的都一样
        controller.view.backgroundColor = UIColor.white
        controller.tabBarItem.image = UIImage.init(named: image)
        controller.tabBarItem.selectedImage = UIImage.init(named: seletedImage)
        let naviController = MainNavigationController.init(rootViewController: controller)
        addChild(naviController)
    }
}

创建方式二 : 这个数组可以按对应关系放到info.plist里

    let tabBarNormalImages = ["icon_book","icon_find","icon_update","icon_mine"]
    let tabBarSelectedImages =      ["icon_book_sel2x","icon_find_sel2x","icon_update_sel2x","icon_mine_sel2x"]
    let tabBarTitles = ["书架","发现","更新","我的"]
        func createTabbarSecond(){
            var vc : UIViewController?
            for i in 0..<self.tabBarNormalImages.count {
                //创建根控制器
                switch i {
                case 0:
                    vc = BookVC()
                case 1:
                    vc = FindVC()
                case 2:
                    vc = UpdateVC()
                case 3:
                    vc = MineVC()
                default:
                    break
                }
                //创建导航控制器
                let nav = MainNavigationController.init(rootViewController: vc!)
                //1.创建tabbarItem
                let barItem = UITabBarItem.init(title: self.tabBarTitles[i], image: UIImage.init(named: self.tabBarNormalImages[i])?.withRenderingMode(.alwaysOriginal), selectedImage: UIImage.init(named: self.tabBarSelectedImages[i])?.withRenderingMode(.alwaysOriginal))
                //2.更改字体颜色大小
                barItem.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor.red], for: .normal)
                barItem.setTitleTextAttributes([NSAttributedString.Key.font :UIFont.systemFont(ofSize: 15)], for: .normal)
                barItem.setTitleTextAttributes([NSAttributedString.Key.foregroundColor : UIColor.red], for: .selected)
                //设置标题
                vc?.title = self.tabBarTitles[i]
                vc?.tabBarItem = barItem
                self.addChild(nav)
            }
        }

相关文章

网友评论

      本文标题:swift学习关于tabbar(一)

      本文链接:https://www.haomeiwen.com/subject/rcgpgqtx.html