SwiftUI TabBar 省略号未垂直居中

问题描述

我刚刚开始使用 SwiftUI 应用,所以我要做的第一件事就是设置导航。

我从一个非常简单的 TabBar 开始,使用所有认的东西,包括图标的 SF 符号。

struct ContentView: View {
    var body: some View {
        TabView {
            ActivityView()
                .tabItem {
                    Image(systemName: "house.fill")
                    Text("Activity")
                }
            
            discoverView()
                .tabItem {
                    Image(systemName: "magnifyingglass")
                    Text("discover")
                }
            
            MoreView()
                .tabItem {
                    Image(systemName: "ellipsis")
                    Text("More")
                }
            
        }
    }
}

呈现方式如下:

ellipsis is aligned near top of tab bar

为什么省略号没有垂直居中?我认为 SF Symbols 的一大卖点是它们会相互对齐。

我真的很困惑。

解决方法

Xcode 12.5.1 和 13.0 测试版 1

'省略号'符号仍然渲染到tabItem框架的顶部,并且无法在SwiftUI中直接修改框架和偏移量。我已经通过将图像包装在 UIImage 中并删除基线来解决它。

    MoreView()
        .tabItem {
            Image(uiImage: UIImage(systemName: "ellipsis")!.imageWithoutBaseline())
            Text("More")
        }

enter image description here