iPhone CGContext: zeichnen Sie zwei Linien mit zwei verschiedenen Farben
Ich habe einige Probleme mit der CGContext mit einer iPhone-app. Ich versuche, zeichnen Sie mehrere Linien mit unterschiedlichen Farben, aber alle Zeilen, die am Ende immer die Farbe, die verwendet wurde, Letzte. Ich habe versucht, mehrere Ansätze, aber noch nicht glücklich gewesen.
Habe ich ein kleines Beispielprojekt zum Umgang mit diesem Thema. Das ist mein code, ich benutze in der drawRect-Methode. Ich bin versuchen zu ziehen, eine rote und eine Blaue Linie:
- (void)drawRect:(CGRect)rect{
NSLog(@"drawrect!");
CGContextRef bluecontext = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(bluecontext, 2.0);
CGContextSetStrokeColorWithColor(bluecontext, [UIColor blueColor].CGColor);
CGContextMoveToPoint(bluecontext, 1, 1);
CGContextAddLineToPoint(bluecontext, 100, 100);
CGContextSetStrokeColorWithColor(bluecontext, [UIColor redColor].CGColor);
CGContextAddLineToPoint(bluecontext, 200, 100);
CGContextStrokePath(bluecontext);
}
vielen Dank für Ihre Hilfe
InformationsquelleAutor phonecoddy | 2010-06-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie diesen code, bevor Sie den Schlaganfall Farbe das zweite mal:
Alle die AddLine-und AddOther Anrufe sind Gebäude einen Weg. Der Pfad gezeichnet wird mit einem Aufruf wie StrokePath, mit der zuletzt eingestellten Farben und anderen Attributen. Sie versuchen zu ziehen, zwei getrennte Wege, so müssen Sie anrufen Beginnen Sie, und Strich für jeden einzelnen Pfad. Beginnen wird sozusagen implizit, wenn Sie mit dem zeichnen beginnen, obwohl es nicht weh tut, nennen Sie es selbst. Der grundlegende Ablauf der Zeichnung ist:
Ja, für jede änderung in der Farbe, die Sie ziehen muss, den Pfad und löschen Sie es. Sie können es tun, alle in den gleichen Kontext.
InformationsquelleAutor drawnonward
Das ist, was Sie brauchen.
InformationsquelleAutor fyasar
Ich glaube, das könnte funktionieren.
InformationsquelleAutor Dicarpio
Wenn Sie daran interessiert sind, wie es aussieht in einer Schleife:
Guter Punkt, schon komisch, wie 3 Jahre sind vergangen, und niemand dachte, zu Fragen. Ich bin mir ziemlich sicher, dass Sie können verwenden Sie einfach "Punkt" ersetzen "transformedPoint". Ich werde es testen später heute zu überprüfen. @Mady
Ich habe dies getan, gestern, während der überprüfung den code erneut aus.... aber danke
Ja, ich habe das behoben.
InformationsquelleAutor John Riselvato