首页 > 解决方案 > 如何调整我的 UITabBarController 的标题文本字体大小?

问题描述

我正在使用一个UITabBarController,但我只有 2 个选项卡。而不是使用图标,我只想使用文本。我创建了一个栏项目标题,但文本非常小,我很难修改它。我怎样才能使一个栏项只是合理地适合该部分的文本?

我试图以编程方式更改字体大小,但我对 swift 还很陌生并且正在苦苦挣扎。

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        UITabBar.appearance().tintColor = .white
        UITabBarItem.appearance().setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.white], for: .selected)

        UITabBarItem.appearance().setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.lightGray], for: .normal)


        return true
    }
}

标签: swiftuitabbarcontroller

解决方案


对于每个UIViewControllerin UITabBarController,调用setTitleTextAttributes(_:for:)控制器的tabBarItemin viewDidLoad(),即

class VC1: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        self.tabBarItem.setTitleTextAttributes([.font: UIFont.systemFont(ofSize: 20.0, weight: .regular)], for: .normal)

    }
}

class VC2: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        self.tabBarItem.setTitleTextAttributes([.font: UIFont.systemFont(ofSize: 20.0, weight: .regular)], for: .normal)
    }
}

编辑:

由于您已经在 中创建了controllersof tabBarController,因此storyboard您可以通过以下方式使其正常工作。

子类UITabBarController并设置titleTextAttributes它的viewControllers``tabBarItem inviewDidLoad()`,即

class TabBarController: UITabBarController {
    override func viewDidLoad() {
        super.viewDidLoad()
        self.viewControllers?.forEach({
            $0.tabBarItem.setTitleTextAttributes([.font: UIFont.systemFont(ofSize: 20.0, weight: .regular)], for: .normal)
        })
    }
}

现在设置TabBarController为in classUITabBarControllerstoryboard

我希望这能解决您的问题。


推荐阅读