You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 18 iPad端TabBar字体修改失效问题求助

iPad上TabBar字体修改失效问题

我想要设置TabBar的字体,代码在iPhone上运行完全正常,但在iPad上设置的字体和颜色均被忽略(测试用的字体仅用于直观判断修改是否生效)。

iPhone端效果:字体修改生效,显示自定义字体样式
iPad端效果:字体未修改,仍显示系统默认样式

已尝试的方案

  • 使用UITabBar外观设置(分别在didFinishLaunchingWithOptions和TabBar视图初始化方法中配置):
let tabBarAppearance = UITabBarAppearance()
let inlineAppearance = tabBarAppearance.inlineLayoutAppearance
inlineAppearance.normal.titleTextAttributes = [
            .font: myFont
        ]
tabBarController.tabBar.standardAppearance = tabBarAppearance
UITabBar.appearance().scrollEdgeAppearance = tabBarAppearance

同时也对stackedLayoutAppearance和compactInlineLayoutAppearance做了相同的字体设置。

  • 使用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)
  • 直接在SwiftUI的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))

以上方案均无效。我还尝试过遍历视图层级找到TabBar的标签并设置字体,虽然当时能看到字体变化,但很快就会被系统默认字体覆盖。

请问如何在iPad上可靠地修改TabBar字体,还是这个需求根本无法实现?


内容的提问来源于stack exchange,提问作者gebirgsbärbel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 02:53:11