我正在开发一款适用于iOS的游戏,看起来有点像'Boggle'棋盘游戏,基本上是一个4x4网格的数字,你可以通过触摸,触摸移动和触摸事件结构滑动,应返回在主程序中,'tiles'的id /内容被刷,以及'选择'它们,以便用户有视觉反馈,他们已被选中(这是我的问题...如何实现这一点)。瓷砖可以是按钮或标签。
我能够通过与表单本身相关的触摸/向上/移动事件在Windows Phone和PC平台上实现此功能,即“直接覆盖”或“向下”推送,“移动”或'up'一个标签,并发现将事件与相关的向下/向上/移动动作挂钩很简单,但似乎无法弄清楚如何在iOS上做到这一点,尽管研究手势以及触摸/向下/移动范例并创建几个不同于我在Windows中找到它的方式的不同手势项目:http://www.wintellect.com/CS/blogs/jprosise/archive/2011/01/14/building-touch-interfaces-for-windows-phones-part-2.aspx 我猜应该使用标签而不是按钮,但我愿意使用它们。现在,我已经通过简单的按钮触摸实现了游戏,但是当您无法通过单次滑动选择一组相邻标签时,游戏会失去许多现代UI感觉和自然UI约束。 真的会很感激帮助。
答案 0 :(得分:1)
我会创建一个GameBoardView
,它是UIView
的子类。然后,这将使您的4x4网格中的所有标签成为子视图。然后在GameBoardView
中,您可以实现以下方法来处理触摸事件。
– touchesBegan:withEvent:
– touchesMoved:withEvent:
– touchesEnded:withEvent:
– touchesCancelled:withEvent:
这些方法位于UIResponder
,它是UIView
的超类,并且意图被覆盖,因此您可以使用自己的触摸逻辑。
答案 1 :(得分:0)
简单!
/* Lots of code that didn't work, see old version if you want */
不,不是那么简单。似乎UIButton为这些事件加油......
..所以我创建了一个UIView子类,使用UILabels和自定义触摸处理(如Clever Error的答案也指出),发布在GitHub上:https://github.com/LeonardPauli/LPSwipeableInputMatrixView
经过测试和工作。但一点也不完美。重拍应该非常简单。
祝你好运! :)