2010-08-16 100 views
12

水平漸變工作正常。有沒有辦法從水平漸變中獲得垂直的顏色漸變? 我已經看到了一個相關的問題,關於這一點他們通過旋轉框架做到了這一點。垂直顏色梯度

有沒有更簡單的方法來實現垂直漸變?

回答

2

將它旋轉90º如何?

編輯從您的評論判斷,似乎你通過CAGradientLayer這樣做。 CAGradientLayerCALayer的子類,它具有transform屬性。這個transform屬性需要一個CATransform3D,它是一個表示要應用於圖層的某種線性變換(如縮放,平移或旋轉)的結構。

所以真的你只需要make a rotational CATransform3D並將其設置爲CAGradientLayertransform屬性。

您或許也可以通過擺弄startPointendPoint(實際上可能會更簡單)來完成這項工作。

+0

我用gradient.startpoint和gradient.endpoint旋轉...這是好的...? 我需要180度旋轉..我應該使用與上面相同的邏輯。 – darshan 2010-08-16 06:46:27

+0

@darshan編輯答案 – 2010-08-16 07:04:16

76

默認的startPoint端點將有梯度從頂部顯示你的顏色,底部(這在我心目中是一個垂直梯度)。如果你想在梯度從左至右顯示(再次在我心中,這是一個水平梯度),使用此代碼對你CAGradientLayer

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

一個3D轉換是不必要的。

+0

不錯的一個傢伙+1 – Warewolf 2013-07-15 15:39:23