J'utilise un IBoutlet pour obtenir une référence à une sous-vue que j'ai ajoutée à la vue principale dans le générateur d'interface mais cela ne me donne pas accès à drawRect: Je ne serai pas en mesure d'obtenir un contexte sur lequel s'appuyer. Est-ce que de toute façon je peux toujours obtenir le contexte graphique pour pouvoir dessiner sur la sous-vue? Comment pourrais-je m'y prendre?iPhone doit obtenir une référence de contexte CGContextRef pour une sous-vue
Répondre
Vous ne pouvez pas dessiner comme ça; vous devez dessiner en réponse à un appel drawRect
, pas à n'importe quel moment car certains cadres le permettent.
La manière correcte de le faire est: créer une sous-classe UIView dans Xcode. Passez à Interface Builder, sélectionnez votre sous-vue, et changer son "Identité de classe" (sous "Outils> Inspecteur d'identité") pour le nom de votre nouvelle sous-classe.
Ensuite, dans votre sous-classe, vous pouvez implémenter drawRect
.
Vous ne devriez jamais dessiner dans une autre vue, même pas une sous-vue. La sous-vue doit se dessiner et avoir accès à son propre contexte graphique. Vous ne pouvez pas accéder au contexte d'une autre vue. ils sont gérés par le framework et sont configurés avant d'appeler le -drawRect:
pour la vue appropriée.
Techniquement, il existe un moyen pour qu'un objet devienne le délégué de dessin d'un autre via la route view.layer.delegate. On peut construire un délégué pour mettre en œuvre
- (void) drawLayer: (CALayer *) Couche inContext: (CGContextRef) CTX
Cela vous donne la possibilité de réutiliser des instructions de dessin si cela devenait nécessaire. Mais il peut être fastidieux de lire et de comprendre pour un autre programmeur. La plupart l'éviteraient à moins d'éliminer la duplication du code.
- 1. Comment obtenir la taille d'un contexte Iphone
- 2. Comment obtenir une référence à l'UITabBar dans une application iPhone
- 3. Référence à une bibliothèque dans Xcode pour iPhone App
- 4. Comment puis-je obtenir une référence à une méthode?
- 5. Comment obtenir une référence à une autre classe correctement?
- 6. Comment obtenir une référence au ItemsPanel d'un ListBox Silverlight
- 7. Où la vidéo doit-elle être hébergée pour diffuser une application pour iPhone?
- 8. Comment obtenir une référence à une ligne de table avec une valeur spécifique dans jQuery
- 9. Une instance NSLock doit-elle être "globale"?
- 10. Comment obtenir un contexte de périphérique d'imprimante?
- 11. Comment enregistrer une entité pour la première fois pour laquelle une autre entité préexistante doit y être rattachée
- 12. Comment obtenir une référence à une case à cocher dans une barre d'outils?
- 13. Comment définir une typographie SWIG pour une référence au pointeur?
- 14. Le contexte LINQ doit-il être fermé à chaque fois?
- 15. Obtenir un ResourceManager pour une bibliothèque statique
- 16. iPhone: Transformer une image à l'aide de Quartz 2D
- 17. MVVM - La vue doit-elle faire référence au Presenter/ViewModel?
- 18. Python: obtenir une référence à une fonction à l'intérieur de lui-même
- 19. En CAL, comment puis-je obtenir une référence à une instance de module?
- 20. Android: déterminer le contexte actuel pour afficher une alerte
- 21. déploiement de BizTalk incluant une référence Web
- 22. C++ Comment obtenir une référence et sauvegarder la référence en tant que variable locale dans une fonction?
- 23. vb.net ajouter une référence
- 24. Une signature cryptographique sécurisée doit-elle résider en dehors du fichier auquel elle fait référence?
- 25. iphone sdk- UIGraphics - comment sélectionner un aperçu en tant que contexte de dessin courant
- 26. Comment connecter une vue au contexte graphique?
- 27. Pour obtenir une plage de valeurs
- 28. Comment obtenir une référence à une ProfileBase non définie par défaut dans ASP.NET?
- 29. Comment obtenir une date de génération pour une application ASP.NET?
- 30. Comment créer une référence de ressource pour un MBean JBoss
Les vues n'ont pas de contexte. Un contexte est créé pour eux quand '-drawRect:' est appelé, mais en dehors des limites de '-drawRect:' aucun contexte n'existe. –