当我将带有 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)
}
}
我该如何解决这个问题?
答案 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)
}
}