2010-09-04 5 views
2

Comment puis-je implémenter une vue pour les utilisateurs (signer spécifiquement leur nom)? Je préférerais grandement une bibliothèque ou un exemple de code pour l'implémenter moi-même.Affichage du dessin sur iOS

Merci

Répondre

2

traçant une ligne incurvée est juste une série de cercles pleins ou des lignes droites. Une sorte de différenciation.

  1. Suivre les précédents points de contact & de l'utilisateur. (UITouch)
  2. Dessinez simplement une ligne qui relie les points. (Ou dessiner toute forme ce que vous voulez, il suffit de remplir le vide)

Bases

Il y a des séries de méthodes pour le suivi des touches.

– touchesMoved:withEvent: 
– touchesEnded:withEvent: 
– touchesCancelled:withEvent: 

Ces méthodes sont sur UIView. (Méthodes elles-mêmes définies dans UIResponder qui est superclasse de celui-ci) les remplacer. Dans la plupart des cas, le suivi du point de contact n'est pas un problème.

Et envoyez le message setNeedsDisplay à UIView lui-même pour le rendre invalide son état graphique afin qu'il se redessine bientôt.

Remplacer drawRect méthode de la UIView pour dessiner quelque chose (comme disque noir) vous avez besoin avec Quartz (CGContext). Vous pouvez stocker des points tactiles suivis pour dessiner chaque ligne. Fondamentalement, vous devez redessiner tous les sentiers tactiles.

Optimisation

  • Vous pouvez mettre en cache image dessinée comme un bitmap (CGImage qui peut être récupéré UIImage). Vous devez donc dessiner des points de contact nouvellement ajoutés.
  • Vous pouvez dessiner sur bitmap directement en définissant le contexte de dessin sur le bitmap. Et juste l'afficher via UIImage.
  • Vous pouvez utiliser le dessin de texture OpenGL ES. C'est le plus rapide, mais le plus dur. Et nécessite une approche totalement différente pour le gain de performance.

Des informations plus détaillées et des échantillons sont sur la référence des méthodes/classes que j'ai mentionnées. Je joins un lien: http://developer.apple.com/iphone/library/navigation/index.html#section=Topics&topic=Graphics%20%26amp%3B%20Animation