2011-01-20 1 views
0

J'essaie de développer une application qui nécessite un dessin basé sur le toucher de l'utilisateur. J'utilise Quartz2D et CoreGraphics pour le dessin, maintenant je me demande quel est le meilleur moyen de gérer les points que je dessine? Actuellement, j'ajoute chaque point TouchMoved à un tableau et setNeedsAffichez-les à chaque mouvement. Cela retarde le système très rapidement. Donc, je me demande si quelqu'un sait un bon moyen de dessiner en douceur avec le toucher de l'utilisateur pour une bonne quantité de temps? Merci!Quartz2D bonne façon de dessiner un point ou une ligne au toucher?

Répondre

1

Les événements tactiles sont déclenchés très fréquemment. Puisque quartz2d est lent, votre système va se saturer.

plusieurs options

  • à opengl ^^ commutateur (bu qui est un surpuissant)

  • ne font pas un tirage au sort sur chaque événement. vous mettre en contact avec le sommeil (en fait, c'est un anduiton solitaire donc je ne suis pas sûr que c'est bon pour Iphone), seulement dessiner 1 sur x lignes.

  • stocker les coordonnées de votre contact quelque part et lorsque votre application est prête à actualiser l'interface utilisateur, obtenir les valeurs actuelles stockées et vous dessinez.

  • une autre solution que j'avais mise en place est de tester si la nouvelle position avait effectivement bougé de plus d'un certain montant du dernier tirage (disons 1 ~ 3 px) de cette façon j'évite de rafraîchir et redessiner si la mise à jour la position était trop petite.

Ce ne sont que des pointeurs, il pourrait y avoir une meilleure option pour vous ^^ cas

+0

'Passer au opengl ^^ (bu qui est un surpuissant)' u peut ajouter un commentaire pour résumer cette ligne. Je veux passer à OpenGL mais avant cela, je veux savoir la raison derrière votre commentaire. – DivineDesert

Questions connexes