【发布时间】:2020-05-09 20:07:34
【问题描述】:
TLDR;如果用户在多个节点上拖动手指,如何获取他们在拖动时触摸的所有节点?
我正在尝试构建一个类似 Wordsearch 的游戏,以在 iOS 上自学 SwiftUI。
我已经构建了一个如图所示的图块网格(忽略蓝色图块,因为它们与我的问题无关)。
我希望用户在网格上拖动他们的手指,并且对于他们滑过的每个图块,我会在我的模型上调用一个方法来将该图块标记为“已选择”。
我已经在每个图块的视图上尝试了 DragGesture,就像这样;
.gesture(
DragGesture()
.onChanged { _ in
myModel.SelectTile(self.tile.id);
}
)
但是,当用户的手指从起始图块移出并进入下一个图块时,直到用户抬起手指并在该图块上开始新手势时,下一个节点的拖动手势才会生效。
SwiftUI 可以实现这种行为吗?我意识到我可以使用 SpriteKit 更轻松地做到这一点,但这对于这种“游戏”来说似乎有点过头了。
【问题讨论】: