使用 ForEach 分层视图并使用 ZStack 偏移以创建一堆扑克筹码 (SwiftUI)
Posted
技术标签:
【中文标题】使用 ForEach 分层视图并使用 ZStack 偏移以创建一堆扑克筹码 (SwiftUI)【英文标题】:Layering views using ForEach and offset using ZStack to create a stack of poker chips (SwiftUI) 【发布时间】:2020-08-21 23:54:29 【问题描述】:我正在尝试在 SwiftUI 中创建一堆扑克筹码。我有一个 ChipView,它是单个芯片的视图。我现在正在尝试将 ChipViews 分层以创建扑克筹码。我无法按照视图构建器的规则构建 for 循环。
我想做以下事情:
ZStack
for index in 0..<chipCount
ChipView()
.offset( CGSize(width: index * 5, height: index * 5))
但我知道我不能在视图构建器中这样做。我知道我应该使用ForEach
,但想不出怎么用。我可以构建一个索引数组来使用ForEach(indexArray) index in ...
,但这看起来很笨拙且不令人满意。
我觉得这很简单,但我无法通过谷歌搜索找到解决方案。
【问题讨论】:
【参考方案1】:所以...事实证明,这很容易。我在这里找到了我的问题的答案:How to have a dynamic List of Views using SwiftUI
我的代码现在看起来像这样:
ZStack
ForEach (0..<chipCount) index in
ChipView()
.offset( CGSize(width: index * 5, height: index * 5))
【讨论】:
以上是关于使用 ForEach 分层视图并使用 ZStack 偏移以创建一堆扑克筹码 (SwiftUI)的主要内容,如果未能解决你的问题,请参考以下文章
在 ForEach/ZStack (SwiftUI) 中将表达式分解为不同的子表达式