我如何在SwiftUI中垂直居中纯文本的TabBar按钮?

问题描述 投票:1回答:2

我正在SwiftUI(Xcode 11.1,iOS 13.1)中制作TabView按钮。

对于我的TabView,我不需要任何图像-仅是文本。这段代码完成了:

import SwiftUI

struct ContentView: View {
    var body: some View {

        TabView {
            Text("The First Tab")
                .tabItem {
                    Text("My Projects")
            }
            Text("Another Tab")
                .tabItem {
                    Text("Augmented Reality")
            }

            Text("The Last Tab")
                .tabItem {
                    Text("Products")
            }
        }
    }
}

但是,在这种情况下,文本最终会与标签栏项目的底部对齐,如下所示:tab bar with labels at the bottom

尽管,我想要的是标签栏not来保留图标的空间,并使文本垂直居中-类似于此模型:

tab bar mock-up showing desired layout

我尝试将其粘贴在VStack中并尝试调整对齐方式,但没有任何变化。

是否有一些聪明的方法可以做到这一点,或者我需要对特定数量的点进行某种补偿?

FYI,Apple的developer doc说,“ 制表符视图仅支持文本,图像或图像后跟文本的选项卡项目。传递任何其他类型的视图将导致可见但空的选项卡项目。

谢谢!

swift swiftui tabview tabitem
2个回答
0
投票

空白处是放置图标的空间。 TabView并不是真正可定制的。您可以将文本转换为图形,然后使用“图像”将其插入-应将其向上推。不过,输入的内容不会很完美。


-1
投票

尝试

TabView(alignment: .center ,spacing: 20))
{
Text("The First Tab")
      .tabItem {
           Text("My Projects")
       }
}
© www.soinside.com 2019 - 2024. All rights reserved.