IOS: dessiner une image dans une vue
J'ai ce code pour la couleur de vue:
UITouch *touch = [touches anyObject];
CGPoint currentPoint = [touch locationInView:drawImage];
UIGraphicsBeginImageContext(drawImage.frame.size);
[drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), size);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), r, g, b, a);
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
mon problème est que je veux de la couleur non pas un point, mais je veux utiliser une image qui se répète (comme une image png)
Est-il possible?
auto.vue.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"de l'image.png"]];
pouvez-vous m'expliquer s'il vous plaît?
pouvez-vous m'expliquer s'il vous plaît?
OriginalL'auteur CrazyDev | 2012-04-13
Vous devez vous connecter pour publier un commentaire.
Il est facile de charger une seule UIImage et dessiner:
Cela permettra de dessiner l'image d'une fois par cycle, pas une ligne continue. Si vous voulez des lignes continues de votre brosse à tableau, voir Objectif C: à l'Aide de UIImage pour Caresser.
Cela pourrait finir de charger le fichier image à chaque fois que cette méthode est appelée, de le rendre lent. Alors que les résultats de
[UIImage imageNamed:]
sont souvent mis en cache, mon code ci-dessus pourrait être améliorée par le stockage de la brosse pour les réutiliser ultérieurement.Parlant de performance, de le tester sur des appareils plus anciens. Comme l'a écrit, il a travaillé sur mon deuxième génération de l'iPod touch, mais tous les ajouts pourraient le faire bégayer sur la seconde et la troisième génération d'appareils. Apple GLPaint exemple, recommandé par @Armaan, utilise OpenGL pour un dessin rapide, mais beaucoup plus de code est impliqué.
Aussi, vous semblez faire votre interaction (
touchesBegan:
,touchesMoved:
,touchesEnded:
) dans une vue, qui tire son contenu dedrawImage
, sans doute unUIImageView
. Il est possible de stocker la peinture de l'image, puis définissez ce point de vue du contenu d'un calque à l'image. Elle n'altère pas les performances, mais le code sera plus propre. Si vous continuez à utiliserdrawImage
, accéder par unproperty
au lieu d'utiliser ses ivar.OriginalL'auteur Dondragmer
Vous pouvez commencer avec APPLE un exemple de code:Exemple de code:GLPaint
OriginalL'auteur Iducool