如何在Swift中的CATextLayer上应用GaussianBlur过滤器
问题描述:
import UIKit
import QuartzCore
class FirstView: UIView {
var copyright = CATextLayer()
override init(frame: CGRect) {
super.init(frame: frame)
...
if let blurFilter = CIFilter(name: "CIGaussianBlur",
withInputParameters[kCIInputRadiusKey:20]
{
copyright.filters = [blurFilter]
}
layer.insertSublayer(copyright, at: 0)
}
}
我找不到其他方法。我希望能够到高斯模糊像CAGradientLayer或CAShapeLayer如何在Swift中的CATextLayer上应用GaussianBlur过滤器
答
的filters
财产的任何层不可用的iOS
特别注意事项不支持在iOS的层这个属性。
https://developer.apple.com/documentation/quartzcore/calayer/1410901-filters
也许你可以使用第三方模糊库。 GPUImage是流行和强大。
'CALayer'(和它的子类)是'UIView'的基本组件。 CoreImage的一部分'CIFilter'将*要求输入一个'CIImage'。有许多方法可以使用'UIView'(或称为'UIImage'或'CGImage')并获得一个'CIImage' - 但是因为你在谈论一个'CALayer'子类,所以我会考虑将'UIView'转换为一个'CIImage'和后面。 (或者是,看着像GPUImage这样的东西,可能需要几乎相同的东西。) – dfd