Finally I went with something similar to what you suggested :
var body: some View {
GeometryReader {geometry in
let size = min(geometry.size.width, geometry.size.height)
let tileSize = size / 8
VStack( spacing: 0.0) {
ForEach((0..<8).reversed(), id: \.self) {
rowIndex in
HStack(spacing: 0) {
ForEach((0..<8), id: \.self) { columnIndex in
TileView(x: rowIndex, y: columnIndex)
}
}
}
}.overlay(alignment: .bottomLeading){
ForEach(Array(model.initialState.keys), id:\.self) {
let (row, column) = $0.tuple()
let piece = model.initialState[$0]!
let offset = model.offset(piece: piece, val: tileSize)
PieceView(type: piece.figure, side: piece.side)
.frame(width: tileSize, height: tileSize)
.offset(x: CGFloat(row) * tileSize, y: -CGFloat(column) * tileSize)
.offset(offset)
}
}
}
}
I thought Z Indexes are global ... then what they refer to ?
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: