如何在iOS上的CALayer中显示色彩图像?

Evg*_*nii 11 calayer uiimage ios

我需要在CALayer中显示一个浅色图像.

它适用于UIImageView:

imageView.image = image.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
Run Code Online (Sandbox Code Playgroud)

但CALayer以原始颜色显示图像,而不是色调.

let tintedImage = image.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
layer.contents = tintedImage.CGImage
Run Code Online (Sandbox Code Playgroud)

有没有办法在CALayer中显示有色图像?

演示:

https://github.com/exchangegroup/calayer-with-tint-colored-image

在此输入图像描述

J.W*_*ams 23

我认为我的解决方案不那么繁琐:

let maskLayer = CALayer()
maskLayer.frame = layer.bounds
maskLayer.contents = tintedImage.CGImage
layer.mask = maskLayer
layer.backgroundColor = UIColor.redColor().CGColor
Run Code Online (Sandbox Code Playgroud)

让我知道它是否正常工作:)

  • 比公认的答案更容易、更整洁。您可能希望通过添加 let layer = CALayer() 并设置 layer.frame 使其更加完整。 (2认同)