如何制作自定义TabBar?

How to make Custom TabBar?

我必须像上图一样自定义标签栏。但是,我不知道如何自定义这一点,因为项目的名称应该只在选项卡栏被选中时出现,如果没有被选中则项目的名称不应该出现。请帮助我。

你需要做两件事

1- 使所选选项卡颜色为绿色

tabController.tabBar.tintColor = UIColor.green

2- 选择项目时监听 UITabBarControllerDelegate 并为每个未选择的项目分配 text 设置为 "" 的项目

tabController.tabBar.items = [] // set all items  

举个例子,写了两个item。
您可以根据 didSelect() 方法中的所选项目分支到 tag
viewWillAppear()中,我写了第一个项目的标题,因为应用程序首次启动时选择了第一个项目。 (初始化)

希望我的回答对您有所帮助

TabBarController.swift

import UIKit

class TabBarController: UITabBarController, UITabBarControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.delegate = self
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(true)
    
        //Setting the UITabBarItem
        
        let tab1 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "ViewController")
        let tab1BarItem = UITabBarItem(title: "home", image: UIImage(systemName: "seal"), selectedImage: UIImage(systemName: "seal.fill"))
        tab1.tabBarItem = tab1BarItem
        tab1.tabBarItem.tag = 0
        
        let tab2 = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "SearchViewController")
        let tab2BarItem = UITabBarItem(title: "", image: UIImage(systemName: "checkmark.seal"), selectedImage: UIImage(systemName: "checkmark.seal.fill"))
        tab2.tabBarItem = tab2BarItem
        tab2.tabBarItem.tag = 1
        
        self.viewControllers = [tab1, tab2]
    }
    

    override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
        
        if item.tag == 0 { // tab1(home)
            item.title = "home"
            tabBar.items?[1].title = ""
        }
        
        if item.tag == 1 { // tab2(search)
            item.title = "search"
            tabBar.items?[0].title = ""
        }
    }
    
}

预览