2010-08-16 20 views
12

Poziomy gradient działa dobrze. Czy istnieje sposób na uzyskanie pionowego gradientu kolorów od poziomego gradientu? Widziałem podobne pytanie dotyczące tego, gdzie zrobili to przez obracanie ramek.pionowy gradient koloru

Czy istnieje prostszy sposób na uzyskanie pionowego gradientu?

Odpowiedz

2

Co powiesz na obrót o 90º?

edytuj sądząc po komentarzu, wydaje się, że robisz to przez CAGradientLayer. CAGradientLayer jest podklasą CALayer, która ma właściwość transform. Ta właściwość transform przyjmuje wartość CATransform3D, która jest strukturą reprezentującą pewien rodzaj przekształcenia liniowego, który zostanie zastosowany do warstwy (na przykład skalowanie, translacja lub obrót).

Tak naprawdę wystarczy po prostu make a rotational CATransform3D i ustawić jako właściwość transform swojego CAGradientLayer.

Prawdopodobnie można również wykonać tę pracę, posługując się startPoint i endPoint (co prawdopodobnie byłoby prostsze).

+0

Użyłem gradient.startpoint i gradient.endpoint do obracania ... czy to jest ok ...? Potrzebuję obrót o 180 stopni .. będę używał tej samej logiki, co powyżej. – darshan

+0

@darshan edytowana odpowiedź –

76

Domyślna startPoint i Endpoint musiałby gradient wyświetlać kolory od góry do dołu (co w moim umyśle jest pionowy gradient). Jeśli chcesz wyświetlać gradient od lewej do prawej (znowu w moim umyśle to poziomy gradient), użyj tego kodu na swojej CAGradientLayer:

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

3D przekształcać jest niepotrzebna.

+0

dobry jeden gość +1 – Warewolf