如何在 SwiftUI 上创建一个空的“视图”数组?

Posted

技术标签:

【中文标题】如何在 SwiftUI 上创建一个空的“视图”数组?【英文标题】:How create an empty array of "View" on SwiftUI? 【发布时间】:2020-09-05 09:28:25 【问题描述】:

我想在 SwiftUI 中有一个空的“视图”数组,稍后再填充。

当我这样写时:

 @State var pages: [View]

XCode 用这个对我大喊:

Protocol 'View' can only be used as a generic constraint because it has Self or associated type requirements

【问题讨论】:

【参考方案1】:

我强烈不建议这样做,但如果你愿意,那么有两种可能的选择

    要么声明为视图类型擦除
@State var pages = [AnyView]()
    或您特定的具体页面类型,假设它是PageView
@State var pages = [PageView]()

【讨论】:

for option1 当我想填充 pages 变量时出现此错误:无法将“YourView.page1.Type”类型的值转换为预期的元素类型“Array.ArrayLiteralElement”(又名“任何视图') Option2 也是不可能的,我想使用确切的 View 东西,一个完整的页面 AnyView 的用途是什么...hackingwithswift.com/quick-start/swiftui/… 啊哈!我应该将我的最终观点投射到 AnyView!

以上是关于如何在 SwiftUI 上创建一个空的“视图”数组?的主要内容,如果未能解决你的问题,请参考以下文章