J'ai un certain nombre d'objets 'ligne' - chacun contenant des informations sur une ligne dessinée en utilisant Core Graphics. Le problème est que bien qu'il puisse y avoir plusieurs objets de ligne ayant chacun une couleur et une largeur de trait uniques, toutes les lignes sont dessinées sous la même couleur et la même largeur de trait.Essayer de définir des états CoreGraphics (iphone) uniques pour chaque trait
Chaque objet de ligne possède des attributs tels que la couleur de trait, la largeur de trait et un tableau NSMutableArray de CGPoints. Dans ma méthode drawRect, j'ai un itérateur NSEnumerator qui travaille à travers chaque CGPoint de chaque objet ligne et une boucle while qui fait ce qui précède pour chaque objet Line de ma collection. Au début de chaque nouvelle ligne, j'ai défini la couleur et l'épaisseur du trait à l'aide des méthodes CGContext (code ci-dessous). Comment puis-je dessiner chaque ligne avec sa propre couleur unique?
- (void)drawRect:(CGRect)rect {
if(hasDrawnBefore){
myContext = UIGraphicsGetCurrentContext();
CGContextSetLineCap(myContext, kCGLineCapRound);
int numberOfLines = [myLines count];
int h = 0;
while(h < numberOfLines){
CGContextSetStrokeColorWithColor(myContext, [[[myLines objectAtIndex:h] lineColor] CGColor]);
CGContextSetLineWidth(myContext, [[myLines objectAtIndex:h] lineThickness]);
NSLog(@"<---------------------- Changed Color and Stroke-Width! ------------------------>");
NSEnumerator *myEnumerator = [[[myLines objectAtIndex:h] linePoints] objectEnumerator];
PointObject* object;
int enumIndex = 0;
while ((object = [myEnumerator nextObject])) {
if(enumIndex == 0){
CGContextMoveToPoint(myContext, object.coordX, object.coordY);
}else{
CGContextAddLineToPoint(myContext, object.coordX, object.coordY);
}
enumIndex++;
}
NSLog(@"Just Iterated on the %i th line of %i lines", h, numberOfLines);
h++;
}
CGContextStrokePath(myContext);
NSLog(@"DRAWING");
}else{
NSLog(@"No Drawings Yet");
}
}