我正在开发一个基本的扫雷游戏来测试SwiftUI,这是开发板的线框代码:
struct BoardView: View {
@State var board: Board
var body: some View {
ScrollView([.horizontal, .vertical]) {
VStack {
ForEach(0..<board.height, id: \.self) { (rowIndex) in
HStack {
ForEach(0..<self.board.width, id: \.self) { (cellIndex) -> CellView in
Rectangle()
.frame(width: 40, height: 40)
.cornerRadius(8)
}
}
}
}
}
}
}
我省略了样式代码(着色)和使事情更简洁的手势。 这在大多数情况下都可以正常工作,直到我将板子扩大到一定程度为止(如果它不适合滚动视图)。由于某种原因,板子的一部分(1列)似乎超出了滚动视图的范围,并且在滚动视图不返回其原始状态的情况下,我无法滚动到它。此外,滚动视图的边界似乎在最后有更多空间,是否可以容纳一整列单元格(此提示有什么用?)。
以下是显示问题的GIF(在模拟器和设备中也会发生):