sto disegnando un grafico a torta con un CAShapeLayer per ogni fetta della torta. Anche quando l'angolo finale di una fetta di torta è uguale all'angolo iniziale della porzione adiacente, l'antialiasing si traduce nel colore di fondo sottostante che appare tra ogni fetta di torta se il bordo tra le fette è ad angolo.CAShapeLayer Adiacente Antialiasing Problema
vorrei eliminare il piccolo spazio tra le fette pur utilizzando l'antialiasing in modo che il carrello torta risultante è ancora liscia. Concettualmente, sembra che esistesse un modo per applicare l'antialias a tutto il CALayer e che i sottolivelli della fetta di torta dopo che tutte le fette di torta fossero state disegnate, sarebbe stato il trucco ... Le fette di torta sarebbero state antialiasite l'una nell'altra invece che nel sfondo.
Ho giocato con tutte le proprietà di CALayer che riesco a pensare e sto avendo difficoltà a trovare maggiori informazioni al riguardo. Qualche idea?
AGGIORNAMENTO: Vedere la risposta seguente.
Grazie mille per la risposta, Rob. Ho provato questa soluzione a un certo punto e vedevo artefatti di antialiasing dagli strati più scuri e sottostanti che venivano sottoposti a antialiasing in background. Appare come un sottile bordo scuro attorno al grafico a torta che era particolarmente evidente sul bordo esterno delle fette di colore più chiaro. La soluzione di riempimento radiale che ho descritto sembra funzionare bene. – Aaron
@Aaron Quando si esegue l'anti-alias, si ottiene un anello di colore + pixel alfa attorno a una forma con alias efficace di colore solido. Facendo questo per più forme con lo stesso contorno, la tua area interna effettivamente alias apparirà bene ma la tua zona anti-alias avrà colore (n) + alpha colore sovrapposto (n-1) + alpha sovrapposizione ... colore (0) + alfa. Questo spiega l'effetto che stai vedendo. –