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

Sat*_*oto 6 swiftui

当我将带有图像的内插字符串传递到文本视图中时,它返回不正确。


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)
    }
}

Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Jak*_*ake 13

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

更改您的子视图以解释这一点,如下所示:

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

    var body: some View {
        Text(label)
    }
}
Run Code Online (Sandbox Code Playgroud)