SwiftUI TabView:具有自定义字体的.tabItem不起作用

时间:2019-10-12 11:36:06

标签: swiftui tvos13

有人熟悉SwiftUI TabView的tabItem不应用自定义字体的问题吗?至少不适用于tvOS13。

对于TabView本身,很容易应用自定义字体,但是当尝试为实际的.tabItem自定义字体时,它不会执行任何操作,但也不会返回任何错误。

首先,我尝试设置一个let

let fontCustom = Font.custom("Awesome Font Name", size: 25)

然后创建TabView

Text("Kanalen")
    .font(fontCustom)
...

有效,但随后以相同方式将TabItem添加到该视图中

...
.tabItem {
    HStack {
        Image(uiImage: UIImage(named: "icon.pdf")!)
        Text("Awesome Item")
            .font(Font.custom("Cera-Regular", size: 16))            
    }
}
...

或者这样:

.tabItem {
    HStack {
        Image(uiImage: UIImage(named: "icon.pdf")!)
        Text("Awesome Item")
            .font(Font.custom("Awesome Font Name", size: 16))            
    }
}

任何人都知道为什么它不起作用,这是否意味着我需要完全创建自定义tabItem视图?

谢谢!

3 个答案:

答案 0 :(得分:6)

这似乎可以解决问题,但是使用了底层的UIKIt控件。希望苹果尽快将其实施到swiftui中。

init() { UITabBarItem.appearance().setTitleTextAttributes([NSAttributedString.Key.font: UIFont.init(name: "Avenir-Heavy", size: 15)! ], for: .normal) }

答案 1 :(得分:0)

TabView {
    Text("The First Tab")
        .tabItem {
            Image(systemName: "1.square.fill")
            Text("First")
        }
    Text("Another Tab")
        .tabItem {
            Image(systemName: "2.square.fill")
            Text("Second")
        }
    Text("The Last Tab")
        .tabItem {
            Image(systemName: "3.square.fill")
            Text("Third")
        }
}
.font(.headline)

这是苹果的示例,但以这种方式更改字体也会更改图像。

答案 2 :(得分:0)

下面以苹果为例,但以这种方式更改字体也会更改图像。

TabView {
  Text("The First Tab")
       .tabItem {
            Image(systemName: "1.square.fill")
            Text("First")
        }
    Text("Another Tab")
        .tabItem {
            Image(systemName: "2.square.fill")
            Text("Second")
        }
    Text("The Last Tab")
        .tabItem {
            Image(systemName: "3.square.fill")
            Text("Third")
        }
}
.font(.headline)