2010-08-16 12 views
12

Yatay degrade çalışıyor. Yatay gradyandan dikey bir renk geçişi elde etmenin herhangi bir yolu var mı? Çerçeveleri döndürerek bunu yaptıkları ile ilgili bir soru gördüm.dikey renk geçişi

Dikey bir degrade elde etmenin daha basit bir yolu var mı?

cevap

2

90 ° döndürmeye ne dersin?

Düzenle yorumdan yargılanıyor, şu an CAGradientLayer aracılığıyla yapıyorsunuz. CAGradientLayer, transform özelliğine sahip CALayer alt sınıf bir alt sınıfıdır. Bu transform özelliği, katmana uygulanacak bir tür doğrusal dönüşümü temsil eden bir yapı olan (ölçekleme, çeviri veya döndürme gibi) bir CATransform3D10 alır.

Yani gerçekten make a rotational CATransform3D'a ihtiyacınız var ve CAGradientLayer ürününüzün transform özelliği olarak ayarlamanız yeterli. Bu çalışmayı muhtemelen startPoint ve endPoint (aslında daha basit olan) ile uğraşmak suretiyle de yapabilirsiniz.

+0

Dönen için gradient.startpoint ve gradient.endpoint kullandım ... bu tamam mı ...? 180 derecelik dönüşe ihtiyacım var .. Yukarıdaki gibi aynı mantığı kullanmalı mıyım? – darshan

+0

@darshan düzenlenmiş cevabı –

76

varsayılan startPoint ve uç noktası gradyan (zihnimde bir dikey degrade olan) yukarıdan aşağıya doğru renkleri görüntülemek olurdu.

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

3D gereksizdir dönüşümü: Eğer degrade soldan sağa doğru görüntülemek isterseniz, sizin CAGradientLayer bu kodu kullanmak (yine kafamda bu yatay eğimi).

+0

iyi bir dostum +1 – Warewolf