选择时如何以编程方式更改选项卡栏项目图像和字体?

How to programmatically change Tab Bar Item image and font when selected?

我想在选中时更改选项卡栏项和字体的粗细。我假设这可以通过在选择相关选项卡时更改选项卡栏项目图像和文本来完成。除了调整突出显示的标签栏项目的色调外,我似乎无法在线找到任何自定义所选标签栏项目的信息,即使大多数应用程序(包括 Instagram)都这样做。这是怎么做到的?

我当前的 5 个标签栏是在 UITabBarController Class 中创建的,并遵循几乎相同的公式,如下所示:

let homeController = HomeViewController()
        homeController.tabBarItem = UITabBarItem(title: "Home", image: UIImage(named: "home"), tag: 1)
        let nav1 = UINavigationController(rootViewController: homeController)

viewControllers = [nav1, nav2, nav3, nav4, nav5]

为了更改图像,我只需在关联的视图控制器中输入此代码 class(在我的例子中,它们是个人 swift 文件)

所以在 class HomeViewController 的 viewDidLoad 中:UIViewController {

self.tabBarItem.selectedImage = UIImage(named: "yourImageName")

以编程方式设置所选 UITabbarItem 的图像:

let tabBarItem = UITabBarItem(title: "title", image: UIImage(named: "defaultImage"), selectedImage: UIImage(named: "selectedImage"))

不过,您无法轻松设置所选 UITabbarItem 的字体。您需要创建自己的 UITabBarController,如 this SO thread 所示。