2016-03-06 104 views
0

我在Feed中有很多不同的圖像,應該看起來像這樣 http://s014.radikal.ru/i327/1603/14/97b12afe691f.png 在Sketch中,它是通過使用RadialGradient的蒙版完成的。於是,我就這樣,而是:帶圖像的徑向漸變IOS

如果我上面梯度加層,圖像不是透明

,如果我重新繪製圖像與石英 - 我得到的滯後,這是不是透明的,因爲它應該是

我知道這應該很容易。真的很容易。請,有人 - 給我一個線索! 這裏是我的梯度:

let colors: [CGFloat] = [ 88/255, 176/255, 113/255, 0.64, 90/255, 125/255, 113/255, 0.17, 88/255, 92/255, 110/255, 0.01] 
let gradient = CGGradientCreateWithColorComponents(baseSpace, colors, [0.0, 0.7, 0.85], 3) 
CGContextDrawRadialGradient(context, gradient, center, 10, center, self.size.width/2, .DrawsAfterEndLocation) 

回答

0

創建CALayer大小爲你的形象一樣。將您的漸變繪製到圖像中,並將該CGImage安裝爲圖層的內容。他們使圖層成爲圖像視圖圖層的蒙版。

查看我的開發博客條目ImageViewWithMask,瞭解在Swift中使用遮罩層的示例。 (在我的示例中,我使用CAShapeLayer繪製了一個硬邊蒙版,您需要改編它才能使用漸變)。

應該是能夠使用CAGradientLayer,但這些看起來不像它們支持徑向漸變。他們有一個漸變類型的屬性,但唯一支持的類型似乎是Axial,這是愚蠢的。