2009-06-10 14 views
1

J'essaie d'introduire un délai entre un événement «Touch Started» et une action telle que la lecture d'un son. Lorsque le seuil est passé, si le doigt de l'utilisateur reste relativement stationnaire, j'espère augmenter progressivement le volume jusqu'à ce que le doigt soit levé ou sorti de la zone d'effet rectangulaire. Si ça traîne, je pourrais jouer un son différent.Détermination de la durée d'immobilisation d'une touche

Je commence avec le délai mais je ne sais pas comment déterminer la durée pendant laquelle un doigt est maintenu dans une position.

Répondre

1

Les messages que vous obtenez au toucher sont lorsque vous levez le doigt ou déplacez le doigt. En supposant que votre application ne supporte qu'une seule touche, cela devrait être assez facile. Si vous prenez en charge le multitouch, vous devrez déterminer quel doigt est ce qu'il bouge.

1

Vous devez configurer une minuterie que vous déclenchez pour augmenter votre volume tous les 1/10s.

Vous pouvez soit compter ces événements de minuterie ou vous pouvez stocker un [NSDate date] dans vos touchesBegan et ensuite inspecter cela comme vos autres événements se produisent - touches déplacées qui reste dans votre rect ou le minuteur.

Cette dernière est une approche plus flexible et non un surdébit significatif.

Questions connexes