Wie kann ich einen CAGradiantLayer verwenden, um möglichst effizient einen Gradienten um einen Kreis/mit Winkeln zu zeichnen?Verwenden von CAGradientLayer für einen Winkel-/Kreisgradienten
Ich habe die eine Unterseite mit Hilfe dieser project gemacht. Es verwendet einen Bitmap-Kontext zum Zeichnen, aber ein CAGradientLayer wäre weitaus effizienter.
Leider konnte ich nur herausfinden, wie man lineare Gradienten damit machen kann.
Hey danke für die Antwort, yeah das Projekt, das ich oben verlinkt, erstellt eine Unterklasse von CALayer, um den Winkelgradienten, den ich oben gezeigt habe, zu rendern. Leider ist das ziemlich langsam, da es zu einem CGBitmapContext zeichnet. – Max
Leider war kCAGradientLayerAxial seit seiner Einführung der einzige unterstützte Gradiententyp. Obwohl wir davon ausgehen können, dass die Unterstützung für andere Arten von Gradienten irgendwann hinzugefügt wird, werde ich es nicht in absehbarer Zeit tun. –
Core Graphics verfügt über die CGContextDrawRadialGradient-Methode. Zeit, um eine benutzerdefinierte Unterklasse von CAGradientLayer zu implementieren, die Ihren eigenen Verlaufstyp unterstützt. Sie können drawInContext implementieren und CGContextDrawRadialGradient aufrufen. Es sollten nur ein paar Zeilen Code und einige zusätzliche Eigenschaften auf der Ebene implementiert werden. –