【发布时间】:2012-06-25 15:00:16
【问题描述】:
我正在写一个纸牌游戏。当用户触摸他们手中的卡片时,他们正在触摸的卡片会稍微滑出以明确他们正在触摸的是哪张卡片,因为他们手中最多可以有 18 张卡片,而且它们有点小。我接下来想要的是让用户能够向上刷卡来玩它。
我曾尝试使用UISwipeGestureRecognizer,但由于用户在第一次触摸屏幕时可能会暂停(以确保正确的卡片滑出),因此通常不会将其识别为滑动。用户也可以只是将他的手指滑到相邻的卡片上然后刷卡。所以,这是另一个问题,因为手势只能在触摸开始的 UIView 上被识别。
我能想到的最好的方法是在父视图(包含所有卡片的 UIView)上使用 UIPanGestureRecognizer。我可以使用它的速度来决定是否应该将其视为滑动。我必须将cancelsTouchesInView 设置为NO 并且仍然只使用touchesBegan 等来检测刷了哪张卡。有没有更好的办法?
【问题讨论】:
-
而不是让 UIPanGesture 以可能不正常的方式工作。您可以通过继承 UIGestureRecognizer 来制作您自己的自定义滑动手势,按照您想要的方式工作。
-
我最喜欢这个主意。好像是最干净的。我要去观看有关此的 WWDC 视频。谢谢。
-
如果您倾向于将其标记为正确,我会提供一个带有自定义手势链接的答案 :)
标签: objective-c ios uigesturerecognizer gesture gesture-recognition