【问题标题】:Detecting touchdown, touchup, touchmove events across 4x4 iOS tiles跨 4x4 iOS 磁贴检测 touchdown、touchup、touchmove 事件
【发布时间】:2013-07-29 15:04:58
【问题描述】:

我正在开发一款看起来有点像“Boggle”棋盘游戏的 iOS 游戏,基本上是一个 4x4 的数字网格,您可以通过触地、触动和触动事件结构滑过它,然后应该返回向主程序滑动“图块”的 id/内容以及“选择”它们,以便用户获得他们已被选中的视觉反馈(这是我的问题......如何实现这一点)。 tile 可以是按钮或标签。

我能够在 Windows Phone 和 PC 平台上通过与表单本身相关联的触摸/向上/移动事件、“直接上方”或“向下”、“移动”或'up' 一个标签,并发现将事件与相关的向下/向上/移动动作挂钩很简单,但似乎无法弄清楚如何在 iOS 上执行此操作,尽管研究了手势以及触摸向上/向下/move 范例并创建几个不同的手势项目,这些项目与我在 Windows 中发现的方式不同:http://www.wintellect.com/CS/blogs/jprosise/archive/2011/01/14/building-touch-interfaces-for-windows-phones-part-2.aspx 我猜应该使用标签而不是按钮,但我愿意使用任何一种。现在,我已经通过简单的按钮触摸实现了游戏,但是当您无法通过单次滑动选择一组相邻的标签时,游戏失去了很多现代 UI 感觉和自然 UI 约束。 真的感谢您的帮助。

【问题讨论】:

    标签: ios objective-c touch swipe gesture


    【解决方案1】:

    我将创建一个GameBoardView,它是UIView 的子类。然后,这会将 4x4 网格中的所有标签作为子视图。然后在您的GameBoardView 中,您可以实现以下方法来处理触摸事件。

    – touchesBegan:withEvent:
    – touchesMoved:withEvent:
    – touchesEnded:withEvent:
    – touchesCancelled:withEvent:
    

    这些方法位于UIResponder 中,它是UIView 的超类,旨在被覆盖,因此您可以执行自己的基于触摸的逻辑。

    【讨论】:

    • 我不确定如何子类化 UI 视图,但找到了这篇文章,所以我会尝试一下,看看第一个答案是否在谈论:raywenderlich.com/1768/…
    【解决方案2】:

    简单!

    /* Lots of code that didn't work, see old version if you want */
    

    不,没有那么简单。似乎 UIButton 加强了事件..

    ..所以我创建了一个 UIView 子类,带有 UILabels 和自定义触摸处理(正如 Clever Error 的回答也指出的那样),发布在 GitHub 上:https://github.com/LeonardPauli/LPSwipeableInputMatrixView

    经过测试和工作。但一点也不完美。重制应该很简单,通过。

    祝你好运! :)

    【讨论】:

    • 当我尝试 2d 解决方案时,在 j 迭代器中发现了一个错误: (int j=0; j
    • 这是我要移植的应用程序。它在 Windows Phone 和 Windows 8 PC 商店,争取在下个月登陆 iOS...windowsphone.com/en-us/store/app/mathament/…
    • 你愿意合作一下吗?
    • 好的,我现在已经创建了一段可以工作的代码,很快就会上传到 GitHub。
    • 当然可以。 @mathament
    猜你喜欢
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2017-01-22
    • 2016-08-23
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    相关资源
    最近更新 更多