【问题标题】:Radial Gradient with Image IOS带有图像 IOS 的径向渐变
【发布时间】:2016-03-06 14:26:05
【问题描述】:

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)

【问题讨论】:

    标签: xcode swift quartz-2d


    【解决方案1】:

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

    查看我的开发博客文章ImageViewWithMask,了解在 Swift 中使用遮罩层的工作示例。 (在我的示例中,我使用 CAShapeLayer 来绘制硬边蒙版。您需要对其进行调整以改用渐变)。

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

    【讨论】:

      猜你喜欢
      • 2020-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多