Определить, что пользователь не касался экрана в течение определенного времени - PullRequest
0 голосов
/ 04 июля 2011

Если пользователь не прикасался к экрану в течение определенного времени, я должен выполнить определенное действие. Как я могу сделать это в Cocos2d?

Ответы [ 2 ]

6 голосов
/ 04 июля 2011

Вы можете создать подкласс UIView и переопределить - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event.

Этот метод вызывается очень рано в цепочке респондента и позволяет обнаружить касание в любом месте представления.

 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
     UIView *result = [super hitTest:point withEvent:event];
     ....
     return result;
 }

Как только вы обнаруживаете касание, вы сбрасываете таймер, так что либо новое событие касания наступает до того, как таймер сработает, либо сработает таймер.

Когда срабатывает таймер, вы выполняете свое конкретное действие.

За подобным подходом может следовать подкласс UIWindow и затем переопределение -(void)sendEvent:(UIEvent *)event.Преимущество этого состоит не в том, что он связан с представлением, а во всем окне вашего приложения и вызывается еще раньше в цепочке респондента.

 - (void)sendEvent:(UIEvent *)event {
     if ([self thisIsTheTouchIwaitedFor:event])
         [self resetWaitTimer];
     [super sendEvent:event];
 }
0 голосов
/ 04 июля 2011

просто немного погуглив, я нашел это возможно, это может помочь вам

...