je peux tirer beaucoup de choses en utilisant ceci:Pourquoi je ne peux pas dessiner dans une boucle? (L'utilisation UIView dans l'iPhone)
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"dummy2.png" ofType:nil];
UIImage *img = [UIImage imageWithContentsOfFile:imagePath];
image = CGImageRetain(img.CGImage);
CGRect imageRect;
double x = 0;
double y = 0;
for (int k=0; k<someValue; k++) {
x += k;
y += k;
imageRect.origin = CGPointMake(x, y);
imageRect.size = CGSizeMake(25, 25);
CGContextDrawImage(UIGraphicsGetCurrentContext(), imageRect, image);
}
}
CGImageRelease(img.CGImage);
Ainsi, il fonctionne, donc, je l'ai mis dans l'exécution d'un objet de commande de la méthode. Ensuite, je veux faire des choses similaires, mais cette fois-ci, mon méthode Execute seulement faire ceci:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"dummy2.png" ofType:nil];
UIImage *img = [UIImage imageWithContentsOfFile:imagePath];
image = CGImageRetain(img.CGImage);
CGRect imageRect;
double x = inComingX;
double y = inComingY;
imageRect.origin = CGPointMake(x, y);
imageRect.size = CGSizeMake(25, 25);
CGContextDrawImage(UIGraphicsGetCurrentContext(), imageRect, image);
CGImageRelease(img.CGImage);
Cette fois-ci, ce qui est également une commande, et c'est la méthode d'exécution. Mais je prends la boucle pour. Je vais avoir une autre méthode qui passe le inComingX, et inComingY dans mon objet Command. méthode
Mon dessin est simplement exécuter le Cmd qui se passait dans mon drawingEngine:
-(void)drawInContext:(CGContextRef)context
{
[self.cmdToBeExecuted execute];
}
J'ai aussi la méthode assign pour affecter la commande ,:
-(void)assignCmd:(Command*)cmd{
self.cmdToBeExecuted = cmd;
}
Et c'est la façon dont je appelé le dessinEngine
for(int k=0; k<5; k++){
[self.drawingEngine assignCmd:[DrawingCmd setDrawingInformation:(10*k):0:@"dummy.png"]];
[self.drawingEngine setNeedsDisplay];
}
Il peut dessiner, mais le plus triste est qu'il ne dessine que le dernier. Pourquoi? et comment le réparer? Je peux dessiner toutes les choses dans mon code First, mais après avoir sorti la boucle à l'extérieur, et utilisé la boucle dans le dernier code, il ne fait que dessiner le dernier. Aide de Plz
O ... Ce n'est pas ce que je veux, comment changer mon code pour supporter de dessiner beaucoup de choses sur la vue? thz .... Mais encore une question, pourquoi mon premier code peut dessiner tout le truc? – Tattat