我想在子类中重写类型为“ some View”的计算属性,以返回不同的View,但出现这种奇怪的错误:
open class A {
open var oneView: some View { ...
}
public class B : A {
public override var oneView: some View { ...
}
“某些视图”类型的属性无法覆盖类型为“ “某些视图”
如何正确完成?
答案 0 :(得分:1)
您可以将每个包装在AnyView
中。它的工作原理如下:
open class A {
open var oneView: AnyView {
AnyView(Text("A"))
}
}
public class B: A {
public override var oneView: AnyView {
AnyView(Text("B"))
}
}
例如,如果您想在视图主体中包含VStack
,则只需确保将其包装在AnyView
中即可。