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):
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.
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.
Tags und Links objective-c ios uiview cgcontext