2013-11-14 5 views
0

Я работаю над проектом хобби, чтобы узнать больше о программировании на ios.Multitouch для кнопок 3x3

Мой главный вид имеет 9 кнопок (сетка 3x3).

Что мне нужно, это узнать, нажал ли пользователь 2 или 1 кнопки и какие кнопки они были.

Я делаю игру с памятью, где иногда пользователю требуется одновременно нажать 2 кнопки (один за другим не хватит).

мне нужно, чтобы быть в состоянии сделать различие между нажатием пользователем 1 из 9 кнопок или 2.

Если они давят более чем в 2 раза, что считается обманом и засчитывается как удар.

Я читал это:

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

Но я не уверен, как идти об этом.

Как связать свои 9 кнопок в одно приятное событие мультитач, которое может мне сказать: Кнопка 3 была нажата. или Кнопки 4 и 5 были нажаты. ?

Оттуда логика совершенно ясна, но у меня проблемы с событиями мультитач IOS.

Благодаря

ответ

1

Сенсорный интерфейс достаточно чувствителен, что люди не будут иметь возможность нажать две кнопки на «точной» одновременно.

Что вам, вероятно, нужно будет сделать, это посмотреть, коснулись ли они двух и только двух кнопок в «разумном» окне времени, чтобы считаться одновременным.

Один подход должен был бы войти в тот момент, каждая кнопка нажимается с NSDate* press = [NSDate date]; вызова, а затем сравнить прессы с NSTimeInterval* interval = [press2 timeIntervalSinceDate press1];

Некоторые умные дозирования интервалов времени и немного условной логики позже, и вы должны иметь хороший тест «одновременных» прессов.

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 должны иметь NSSet из UITouchs

NSArray *arrTouches = [[event allTouches] allObjects] 

итерация через массив и:

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

должен быть вид в ведьме, где произошел