SwiftUI:以属性查看

时间:2019-07-30 01:45:27

标签: swift swiftui

是否可以拥有View属性?

struct MyObj {
    var myView: View
}

尝试此操作时,出现编译器错误:Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements

2 个答案:

答案 0 :(得分:4)

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

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

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

如果希望它在运行时保存不同类型的视图,则需要使用AnyView

struct MyObject {
    var myView: AnyView
}

并且在分配给属性后,您需要将视图实例手动包装在AnyView中。

答案 1 :(得分:-1)

您必须使用5.1。尝试:

 var myView: some View