4

我正在使用 SwiftUI 的全新LabelView,在 Big Sur 上运行 Xcode 12 beta。

作为图像,我使用SF Symbol并找到了一个名为"play". 但我注意到没有任何边界像素的自定义图像(即间距不是由图像引起的)也存在同样的问题,例如 PDF 图标,因此它可能与图像无关。

在 Apple 的演示中,文本和图像应该会自动正确对齐,但我看不到。

struct ContentView: View {
    var body: some View {
        Label("Play", systemImage: "play")
    }
}

结果如下:

在此处输入图像描述

任何想法为什么图像(图标)和文本垂直未对齐?

如果我们给 Button 一个背景颜色,我们可以更准确地看到错位:

Label("Play", systemImage: "play")
    .background(Color.red)

结果如下:

在此处输入图像描述

4

2 回答 2

10

可能是一个错误,因此值得向 Apple 提交反馈。同时这里是基于自定义标签样式的工作解决方案。

使用 Xcode 12b 测试

在此处输入图像描述

struct CenteredLabelStyle: LabelStyle {
    func makeBody(configuration: Configuration) -> some View {
        HStack {
            configuration.icon
            configuration.title
        }
    }
}

struct TestLabelMisalignment: View {
    var body: some View {
        Label("Play", systemImage: "play")
           .labelStyle(CenteredLabelStyle())
    }
}
于 2020-06-24T13:56:41.240 回答
-1

@Sajjon您可以添加自定义视图作为解决方法,并在 HStack 中使用带有文本的图像

于 2020-07-05T11:56:01.493 回答