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
相关产品推荐
相关产品推荐

