如何在 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 上创建一个空的“视图”数组?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI如何在更新已发布数组中的对象而不是数组本身时更新视图
有啥方法可以在 SwiftUI 中使用 @ViewBuilder 创建/提取视图数组
如何将字符串数组从视图模型传递到 swiftUI 中播放歌曲