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
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
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.
Merci Hotpaw - seriez-vous en mesure de poster un exemple de code ou me diriger vers certains sur le web? – GuybrushThreepwood
Jetez un oeil à la propriété d'horodatage de UITouch classe
horodatageLe 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
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. –