Change font for Tabbar on iPad on iOS 18 and 26
03:52 04 Nov 2025

I want to set the font of the TabBar. It works perfectly when running the code on an iPhone, but on iPad the font I set is just ignored, same with colors. (The font is not the actual font I want to use, I simply used this one here, so it is obvious if the font was changed or not).

Screenshot iPhone Screenshot iPhone

I tried several options:

  1. Use appearance for UITabBar like this (I tried both setting it in didFinishLaunchingWithOptions and in the init method of the view that creates the TabBar):
let tabBarAppearance = UITabBarAppearance()
let inlineAppearance = tabBarAppearance.inlineLayoutAppearance
inlineAppearance.normal.titleTextAttributes = [
            .font: myFont
        ]
tabBarController.tabBar.standardAppearance = tabBarAppearance
UITabBar.appearance().scrollEdgeAppearance = tabBarAppearance

I did the same for stackedLayoutAppearance and compactInlineLayoutAppearance

  1. Use appearance for UITabBarItem:
let attributes: [NSAttributedString.Key: Any] = [.font: customFont]
UITabBarItem.appearance().setTitleTextAttributes(attributes, for: .normal)
UITabBarItem.appearance().setTitleTextAttributes(attributes, for: .selected)
UITabBarItem.appearance().setTitleTextAttributes(attributes, for: .highlighted)
UITabBarItem.appearance().setTitleTextAttributes(attributes, for: .disabled)
  1. Set font directly on TabView:
TabView(selection: $selectedTab) {
    Tab("Tab1", systemImage: "1.circle", value: .tab1) {
        Text("Tab 1 Content")
    }

    Tab("Tab2", systemImage: "2.circle", value: .tab2) {
        Text("Tab 2 Content")
    }

    Tab("Tab3", systemImage: "3.circle", value: .tab3) {
        Text("Tab 3 Content")
    }
}
.font(.custom("MyFont", size: 15))

None of the above solutions worked. I then tried to search for any labels in the view and set their fonts. It clearly is called on labels of the TabBar, but even that is later overridden to be the default font again.

Any idea how to reliably change the font for the TabBar on iPad or is it simply not possible?

swiftui uitabbar uitabbaritem uitabbarappearance