0

我正在从事一个爱好项目,以了解有关 ios 编程的更多信息。

我的主视图有 9 个按钮(3x3 网格)。

我需要的是一种知道用户是否按下了 2 个或 1 个按钮以及这些按钮的方法。

我正在制作一个记忆游戏,有时用户需要同时按下 2 个按钮(一个接一个是不够的)。

我需要能够区分用户按下 9 个按钮中的 1 个还是 2 个。

如果他们按下超过 2 个,则被视为作弊,将被视为一次罢工。

我一直在读这个:

https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/multitouch_background/multitouch_background.html

但我不知道该怎么做。

如何将我的 9 个按钮链接到 1 个可以告诉我的漂亮多点触控事件:仅按下按钮 3。或 按钮 4 和 5 被按下。?

从那里逻辑非常清楚,但我在 IOS 多点触控事件方面遇到了麻烦。

谢谢

4

2 回答 2

1

触摸界面足够灵敏,以至于人类无法同时“精确”按下两个按钮。

您可能需要做的是查看他们是否在“合理”的时间窗口内同时触摸了两个且仅两个按钮。

一种方法是记录呼叫按下每个按钮的确切时间NSDate* press = [NSDate date];,然后将按下的次数与NSTimeInterval* interval = [press2 timeIntervalSinceDate press1];

一些巧妙的时间间隔批处理和一些条件逻辑稍后,您应该对“同时”印刷机进行良好的测试。

于 2013-11-14T13:57:36.910 回答
0

如果我理解文档,它应该像这样工作:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

父视图的方法

在 (UIEvent *) 事件中,U 应该有 UITouchs 的 NSSet

NSArray *arrTouches = [[event allTouches] allObjects]

遍历数组并:

UITouch *touch ---
touch.view -> check if this is button

应该是witch touh中的观点发生了

于 2013-11-14T14:10:49.230 回答