Question

La touchesMoved fonction se comporte différemment dans l'iPhone et le simulateur.

L'intervalle de répétition (taux de rafraîchissement) de la fonction touchesMoved est beaucoup plus rapide que simulateur. Est-il un moyen de faire face à la différence?

Était-ce utile?

La solution

Souvent, les gens trouvent que cela soit un problème parce qu'ils sont en train de faire quelque chose intensive dans le gestionnaire touchesMoved et lorsque des événements arrivent très souvent, il fait l'interface semble lag.

Une façon relativement simple à traiter ce problème est: Tout d'abord, dans le gestionnaire touchesMoved, enregistrer la position tactile dans une variable qui représente la position de tout ce qui est suivi du doigt.

Retour du gestionnaire touchesMoved immédiatement. Créer un objet NSTimer et configurer votre contrôleur de vue en tant que délégué de celui-ci et ont que faire tout nouveau dessin / vue comportement en mouvement utilisé pour être dans votre gestionnaire touchesMoved. Ainsi, vous obtenez un mouvement presque constant quel que soit le temps entre les événements touchesMoved.

Si vous êtes vraiment avancé, vous pouvez utiliser une NSRunLoop personnalisée au lieu d'utiliser une minuterie, mais qui est plus que ce que je peux expliquer ici :) L'idée générale est: ne soyez pas tout faire dans les gestionnaires d'événements touche

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top