首页 > 解决方案 > 创建类似网格的视图,其中网格中的项目位置在 SwiftUI 中是固定的

问题描述

我正在尝试使用 SwiftUI 重新创建 BlockPuzzle 应用程序。我在尝试使用 VStacks 和 HStacks 创建游戏棋子方块以使其具有固定位置时遇到问题。我想有条件地显示一个视图,但如果视图没有显示,那么每个视图的位置都会由于 swiftUIs 自适应定位而改变。有谁知道我可以做到这一点?

我想创建这个: 我希望游戏片段看起来如何

这就是我所说的方块的移动方式: 我的棋子版本

如果您查看我的版本,底部的中间部分有一个块被 swiftUI 移动到中间,但我希望它与第一列保持对齐。

这是代码:

var body: some View {
    VStack {
        ForEach(model, id: \.self) { row in
            HStack {
                ForEach(row, id: \.self) { block in
                    if block == false {
                        EmptyView()
                    } else {
                        BlockView()
                    }
                }
            }
        }
    }
}

模型是布尔数组的二维数组。我猜假的条件是我试图修复的地方。

标签: swiftui

解决方案


推荐阅读