SwiftUI:查看 属性

SwiftUI: View as property

有没有办法让View属性?

struct MyObj {
    var myView: View
}

当我尝试这个时,我得到一个编译器错误:Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements

您必须使用 5.1。尝试:

 var myView: some View

如果您想要一个可以容纳任何类型 View 的 属性,您有几个选择。

如果它在运行时始终是相同类型的视图,您可以使容器通用:

struct MyObject<Content: View> {
    var myView: Content
}

如果你想让它在运行时持有不同类型的视图,你需要使用AnyView:

struct MyObject {
    var myView: AnyView
}

当分配给 属性.

时,您需要手动将视图实例包装在 AnyView