使用 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) 中将表达式分解为不同的子表达式

如何通过拖动在SwiftUI ZStack中重新排列视图

SwiftUI 在 ZStack 中不居中

在屏幕顶部使用 .horizo​​ntal ScrollArea?

SwiftUI动画视图出现在ZStack中时出现奇怪的过渡

SwiftUI 使用 List 和 Foreach 遍历字典中的键并创建列表视图