Ich zeichne ein Kreisdiagramm, das einen CAShapeLayer für jede Scheibe des Kuchens mit. Selbst wenn der Endwinkel eines Kreissegment ist gleich den Anfangswinkel der benachbarten Scheibe, wird resultierende Anti-Aliasing in der darunterliegenden Hintergrundfarbe zwischen jeder pice Scheibe erscheinen, wenn die Grenze zwischen den Scheiben in einem Winkel ist.Angrenzend CAShapeLayer Anti-Aliasing-Ausgabe
Ich mag würde die kleine Lücke zwischen Scheiben zu beseitigen, während immer noch Anti-Aliasing mit so noch die resultierenden Kuchen Wagen glatt aussehen. Konzeptionell, so scheint es, wenn es eine Möglichkeit gäbe Anti-Aliasing auf die gesamte CALayer anzuwenden und es ist ein Kreissegment Subschichten, nachdem alle Tortenstück gezogen wurden, das würde den Trick tun ... Die Kreissegmente ineinander Anti-Aliasing werden würden, anstatt in die Hintergrund.
Ich habe mit so vielen CALayer Eigenschaften rumgespielt wie ich mir vorstellen kann und habe eine harte Zeit auf diese Informationen zu finden. Irgendwelche Ideen?
UPDATE: Siehe meine Antwort unten.
Vielen Dank für die Antwort, Rob. Ich habe diese Lösung an einem Punkt versucht und sah Antialiasing-Artefakte von den dunkleren, darunterliegenden Schichten, die in den Hintergrund antialiasiert wurden. Es erschien als ein subtiler dunkler Rand um das Tortendiagramm herum, der besonders am äußeren Rand der heller gefärbten Scheiben wahrnehmbar war. Die von mir beschriebene radiale Füllstofflösung scheint gut zu funktionieren. – Aaron
@Aaron Wenn Sie eine Anti-Alias-Funktion verwenden, erhalten Sie einen Ring aus Farbe und Alpha-Pixel um eine effektvolle Alias-Form von Volltonfarbe. Wenn Sie dies für mehrere Formen mit demselben Umriss tun, sieht Ihr effektiv geglättetes Innengebiet gut aus, aber Ihre Anti-Alias-Zone wird Farbe (n) + Alpha überlagernde Farbe (n-1) + Alpha überlagern ... Farbe (0) + Alpha. Dies erklärt den Effekt, den Sie sehen. –