多点触控3x3按钮

时间:2013-11-14 13:47:04

标签: ios iphone objective-c

我正在开展一个爱好项目,以了解有关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多点触控事件的问题。

由于

2 个答案:

答案 0 :(得分:1)

触控界面非常灵敏,人类无法在“完全”同时按下两个按钮。

您可能需要做的是看看他们是否在“合理”的时间窗口内触及了两个且只有两个按钮,以便同时考虑。

一种方法是使用NSDate* press = [NSDate date];调用记录按下每个按钮的确切时刻,然后将印刷机与NSTimeInterval* interval = [press2 timeIntervalSinceDate press1];进行比较

一些聪明的时间间隔批处理和稍后的一些条件逻辑,你应该对“同时”按下进行一次很好的测试。

答案 1 :(得分: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

应该是巫婆发生的观点