J'ai besoin de dessiner sur mon uiview sans utiliser la méthode drawrect mais je ne sais pas comment obtenir le contexte graphique dynamiquement à tout moment? Par exemple: Je dois ajouter une ligne lorsque l'utilisateur a sélectionné la ligne d'ajout à partir de pop-up dans ma barre d'outils.Obtenir le contexte de UIView sans utiliser drawrect Méthode
Répondre
Cela ne peut pas être fait. Vous devrez avoir une sorte de marqueur pour indiquer une nouvelle ligne, puis appeler la méthode setNeedsDisplay
pour qu'elle appelle la méthode drawRect:
. Vous pouvez rechercher le marqueur dans la méthode drawRect:
et tracer la ligne en conséquence.
Vous devrez sauvegarder l'état. Probablement un tableau de lignes ajouté afin que vous puissiez l'utiliser pour dessiner la vue lorsque la méthode drawRect:
est invoquée.
Une alternative
Vous pouvez utiliser une vue d'image à cet effet. Vous pouvez le faire,
UIGraphicsBeginImageContext(imageView.frame.size);
[imageView.image drawInRect:CGRectMake(0, 0, imageView.frame.size.width, imageView.frame.size.height)];
/* Draw line here */
imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
De cette façon, vous n'aurez pas l'état mais vous ajoutez simplement la ligne à l'image.
Votre vue a aucun contexte graphique en dehors de drawRect:
. Vous ne pouvez pas effectuer d'appels de dessin arbitraires en dehors de drawRect:
et les laisser persister. Si vous devez ajouter dynamiquement des lignes, etc. à une vue, vous devez d'abord stocker les lignes dans un tableau ou une autre structure, puis itérer cette structure à drawRect:
et dessiner chaque élément.
Vous pouvez également créer une vue personnalisée (ou une couche) sur chaque ligne et l'ajouter en tant que sous-vue.
- 1. Benchmark UIView drawRect: méthode
- 2. iPhone - nettoyer le contexte d'un UIView drawRect extérieur
- 3. Quand est - [UIView drawRect:] Méthode invoquée?
- 4. iOS UIView drawRect redimensionner l'animation
- 5. UIView drawRect vs initWithFrame
- 6. Comment obtenir le contexte graphique d'un UIView?
- 7. Actualiser UIView pour drawRect?
- 8. UIView drawRect est saccadé
- 9. Méthode de surcharge (en particulier drawRect :) sans sous-classe
- 10. taille de UIView basé sur drawRect
- 11. capture UIImage de UIView coincé dans la méthode drawRect
- 12. UIView drawRect fuite avec CoreText
- 13. DrawRect de UIView à l'intérieur de UIScrollView
- 14. UIView avec Mutliple Méthodes DrawRect
- 15. DrawRect de UIView n'est pas appelé
- 16. UIView sous-classe: drawRect pas appelé
- 17. UIView drawRect ne dessine rien pour moi?
- 18. Tampons pairs et impairs dans UIView drawRect?
- 19. Android: drawRect sans antialiasing
- 20. Zoom UIView sans utiliser UIScrollview
- 21. Is - [UIView (MyOwnCategory) drawRect:] n'a jamais appelé le 3.1.3?
- 22. UIView Couche coins arrondis et -drawRect:
- 23. Obtenir une méthode générique sans utiliser GetMethods
- 24. Arrière-plan transparent UIView drawRect cercle
- 25. Dessin avec méthode drawRect - Cocoa
- 26. Créer CGPath à partir de Floats sans drawRect
- 27. obtenir le UIImage (ou CGImage) de drawRect
- 28. Obtenir l'image de UIView sans parent Voir
- 29. Comment utiliser DrawRect correctement
- 30. iPhone - essayer de comprendre le drawRect:
Merci beaucoup :) Ça m'a beaucoup aidé :) –