Swiftui:将带有图像的内插字符串作为字符串传递到文本视图中不会显示给定的图像

时间:2021-07-29 15:00:57

标签: swiftui

当我将带有 Image 的内插字符串传递到 Text 视图时,它返回错误。


import SwiftUI

struct UserMediaCell: View {
    var body: some View {
        subView(label:"\(Image(systemName: "ellipsis"))") 
        // shows incorrectly:
        // Image(provider: SwiftUI.ImageProviderBox<SwiftUI.Image.(unknown context at $18c350410).NamedImageProvider>)

        Text("\(Image(systemName: "ellipsis"))") 
        // shows correctly. (sf symbol visible)
    }
}

struct subView: View {
    @State var label: String

    var body: some View {
        Text(label)
    }
}

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

这是因为您的子视图将字符串插值的结果作为字符串类型。正常工作的文本视图不是使用字符串来初始化视图,而是使用本地化字符串键。

更改您的子视图以说明如下:

// Structs, Classes, and Actors should start with a Capital Letter BTW
struct SubView: View {
    @State var label: LocalizedStringKey

    var body: some View {
        Text(label)
    }
}