Ich tauche meine Füße in ein paar weitere Grafiken von Core Graphics und versuche einen boshaft aussehenden metallischen Knopf nachzubilden, und ich bin auf ein Thema gestoßen, das wahrscheinlich ein Hindernis darstellt.
Es scheint keine Möglichkeit zu geben, angle Farbverläufe in Core Graphics zu zeichnen. Ich sehe, es gibt CGContextDrawRadialGradient()
und CGContextDrawLinearGradient()
, aber es gibt nichts, was ich sehen würde, die mir erlauben würde, einen Winkelgradienten zu zeichnen. Kennt jemand eine Problemumgehung oder ein etwas verstecktes Framework, um dies zu erreichen, ohne den Regler in eine Image-Datei vorzurendern?
AngleGradientKnob http://dl.dropbox.com/u/3009808/AngleGradient.png .
Das ist irgendwie zusammengewürfelt, aber es ist der Ansatz, den ich wahrscheinlich machen würde. Dies erzeugt einen Winkelgradienten, indem Sie ihn direkt in eine Bitmap zeichnen, indem Sie eine einfache Triggerung verwenden und ihn dann auf einen Kreis zuschneiden. Ich erstelle ein Raster aus Speicher mit einem Graustufen-Farbraum, berechne den Winkel von einem bestimmten Punkt zum Mittelpunkt und färbe ihn dann basierend auf einer periodischen Funktion zwischen 0 und 255. Du könntest das natürlich auch auf RGBA-Farbe erweitern .
Natürlich würden Sie dies zwischenspeichern und mit der Mathematik spielen, um die gewünschten Farben zu erhalten. Dies läuft derzeit von Schwarz bis Weiß, was nicht so gut aussieht, wie Sie möchten.
%Vor%
Tags und Links gradient cocoa-touch core-graphics quartz-graphics