2010-08-16 11 views
12

Horizontale Farbverlauf funktioniert gut. Gibt es eine Möglichkeit, einen vertikalen Farbverlauf vom horizontalen Farbverlauf zu erhalten? Ich habe eine verwandte Frage dazu gesehen, wo sie das getan haben, indem sie die Rahmen gedreht haben.vertikale Farbverlauf

Gibt es einen einfacheren Weg, um einen vertikalen Gradienten zu erreichen?

Antwort

2

Wie wäre es, es um 90º zu drehen?

bearbeiten Beurteilung von Ihrem Kommentar, es scheint, dass Sie dies über CAGradientLayer tun. CAGradientLayer ist eine Unterklasse von CALayer, die eine transform Eigenschaft besitzt. Diese transform-Eigenschaft benötigt eine CATransform3D, eine Struktur, die eine Art von linearer Transformation darstellt, die auf die Ebene angewendet wird (z. B. Skalierung, Verschiebung oder Drehung).

Also wirklich müssen Sie nur make a rotational CATransform3D und setzen Sie es als die transform Eigenschaft Ihrer CAGradientLayer.

Sie könnten wahrscheinlich auch diese Arbeit machen, indem Sie mit den startPoint und endPoint fiedeln (was eigentlich wahrscheinlich einfacher wäre).

+0

Ich habe gradient.startpoint und gradient.endpoint für rotierende verwendet ... ist das ok ...? Ich brauche 180 Grad Rotation .. soll ich die gleiche Logik wie oben verwenden. – darshan

+0

@darshan bearbeitete Antwort –

76

Der Standard startpoint und endPoint würde die Steigung von oben nach unten Ihren Farben angezeigt werden (was in meinem Kopf eine vertikalen Gradient). Wenn Sie die Steigung wollen von links nach rechts angezeigt wird (wieder in meinem Kopf ist dies eine horizontal Gradient), verwenden Sie diesen Code auf Ihrem CAGradientLayer:

[gradientLayer setStartPoint:CGPointMake(0.0, 0.5)]; 
    [gradientLayer setEndPoint:CGPointMake(1.0, 0.5)]; 

Ein 3D-Transformation nicht erforderlich ist.

+0

gut ein Kumpel +1 – Warewolf