Zeichnen eines Polygons mit einer Farbe für den Strich und einem anderen für die Füllung?

7

Ich habe Probleme damit, einige Linien zu zeichnen, die mit einer Farbe versehen sind und dann ihre Innenseiten (sie machen ein Polygon) mit einer anderen zu füllen.

%Vor%

Wenn% code% auskommentiert ist, bekomme ich folgendes Ergebnis:

Aber wenn ich CGContextStrokePath auskommentiere und das Polygon ausfülle, läuft die Farbe über die Striche hinaus:

Wie erreichen Sie ein Ergebnis wie dieses (ohne das gesamte Zeichenverfahren zweimal wiederholen zu müssen):

    
Morgan Wilde 09.05.2013, 13:08
quelle

3 Antworten

16

Sie können

verwenden %Vor%

statt

%Vor%

Das Problem ist, dass sowohl CGContextFillPath() als auch CGContextStrokePath(context) clear den aktuellen Pfad, so dass nur die erste Operation erfolgreich ist, und die zweite Operation zieht nichts. CGContextDrawPath() kombiniert Fill und Stroke ohne den Pfad dazwischen löschen.

    
Martin R 09.05.2013, 13:22
quelle
5

Mit UIBezierPath können Sie dies tun:

%Vor%     
Mike Pollard 09.05.2013 13:34
quelle
2

Wenn Sie den Pfad im Kontext streichen oder ausfüllen, entfernt der Kontext den Pfad für Sie (er erwartet, dass die Arbeit erledigt ist). Sie müssen den Pfad erneut hinzufügen, wenn Sie ihn nach dem Überstreichen ausfüllen möchten.

Es ist wahrscheinlich am besten, eine CGPathRef path lokale Variable zu erstellen, den Pfad zu erstellen, hinzuzufügen, zu streichen, erneut hinzuzufügen, zu füllen.

%Vor%     
Wain 09.05.2013 13:12
quelle

Tags und Links