具有图像IOS的径向渐变

时间:2016-03-06 14:26:06

标签: xcode swift quartz-2d

我在Feed中有很多不同的图片,应该是这样的 http://s014.radikal.ru/i327/1603/14/97b12afe691f.png 在Sketch中,使用RadialGradient通过掩码完成。所以我试过这种方式,但是:

如果我添加一个上面有渐变的图层,则图片不透明

如果我用Quartz重绘图像 - 我得到滞后,它不是透明的,因为它应该是

我知道这应该很容易。真的很容易请有人 - 给我一个线索! 这是我的渐变:

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)

1 个答案:

答案 0 :(得分:0)

创建与图片尺寸相同的CALayer。将渐变绘制到图像中并将该CGImage安装为图层的内容。他们使图层成为图像视图图层的蒙版。

查看我的开发博客文章ImageViewWithMask,了解在Swift中使用遮罩层的工作示例。 (在我的例子中,我使用CAShapeLayer绘制一个硬边蒙版。你需要调整它以使用渐变)。

应该能够使用CAGradientLayer,但那些看起来不像是支持径向渐变。它们具有渐变类型属性,但唯一支持的类型似乎是Axial,这很愚蠢。