2010-10-30 13 views
0

Comment puis-je détecter si un utilisateur maintient le doigt appuyé sur un objet à l'écran pendant 1 seconde?Détection d'un blocage sur un objet - iPhone Objectif C

Merci,

Martin

+0

IF touch down Événement Démarrer la minuterie pendant 1 seconde. SI une seconde est écoulée, vérifiez si une retouche s'est produite. Il y a beaucoup de façons de le faire, je serais intéressé de voir une réponse de gourou. –

Répondre

1

Vous avez besoin d'au moins une variable d'état et une minuterie.

Si vous touchez à l'intérieur de la zone cible, réglez la variable d'état sur l'heure actuelle et démarrez une temporisation de 1 seconde. Sur n'importe quelle touche, déplacez-vous hors de la zone cible ou retouchez l'événement, effacez la variable d'état. Après que la minuterie d'une seconde s'est éteinte, vérifiez la variable d'état. S'il a encore un temps d'il y a 1 seconde ou plus (et n'a donc pas été effacé ou modifié), alors le toucher a été sur la cible pendant au moins 1 seconde.

+0

Merci Hotpaw - seriez-vous en mesure de poster un exemple de code ou me diriger vers certains sur le web? – GuybrushThreepwood

1

Jetez un oeil à la propriété d'horodatage de UITouch classe

horodatage

Le moment où le contact a eu lieu ou quand il a été muté dernière. (lecture seule)

@property (nonatomic, en lecture seule) horodatage NSTimeInterval Discussion La valeur de cette propriété est le temps , en secondes, depuis le démarrage du système le contact soit née, a été dernière modification. Vous pouvez stocker et comparer la valeur initiale de cet attribut à horodatage ultérieures des valeurs de l'instance UITouch pour déterminer la durée du contact et, si elle est glissée, la vitesse du mouvement. Pour une définition de la valeur time-since-boot , voir la description de la méthode systemUptime de la classe NSProcessInfo.

Vous devriez l'utiliser avec

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

dans les classes UIResponder ou UIGestureRecognizer selon votre système d'exploitation cible