Comment dessiner une UIImage ou directement en drawRect:?
J'ai un UIImage
qui je veux dessiner sur un UIView
. Mais au lieu de créer un UIImageView
et l'ajout de cette comme une sous-vue, je veux remplacer -drawRect:
et dessiner mon UIView directement.
Par exemple, mon code ressemble à ceci:
- (void)drawRect:(CGRect)rect {
CGContextRef myContext = UIGraphicsGetCurrentContext();
UIImage *img = [UIImage imageNamed:@"foo.png"];
//how to draw the directly into the view now?
}
Vous devez vous connecter pour publier un commentaire.
Appel
[img drawInRect:rect];
.[img drawAtPoint:point]
trop, bien que je préfèredrawInRect:
.BTW, vous ne devriez pas charger le fichier image dans la méthode drawRect. Parce que la méthode est appelée à chaque fois que la vue est nécessaire pour mettre à jour. Par conséquent, il (bien sûr, la procédure de chargement) peut être appelé à plusieurs reprises au cours de l'exécution.
(En outre, OS2.x imageNamed méthode a un bug -- pas de mise en cache de l'image et de la fuite de ce dernier.)
Par conséquent, vous feriez mieux de charger le fichier dans la méthode d'initialisation, pas dans le drawRect.
+(void)initialize
, ou l'habitudeinit
méthode, en fonction de ce que vous faites.