2017-10-14 2 views
0
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) 
    } 

} 

Je ne pouvais pas trouver d'autres moyens. Je veux être en mesure de GaussianBlur une couche comme un CAGradientLayer ou CAShapeLayerComment appliquer le filtre GaussianBlur sur une CATextLayer dans Swift

+1

'CALayer' (et ses sous-classes) sont un composant de base d'un' UIView'. 'CIFilter', une partie de CoreImage, va * nécessiter * une entrée d'un' CIImage'. Il existe des moyens de prendre un 'UIView' (ou dire un' UIImage' ou 'CGImage') et d'obtenir un' CIImage' - mais puisque vous parlez d'une sous-classe 'CALayer', je chercherais à convertir un' UIView' en un 'CIImage' et retour. (Ou oui, en regardant quelque chose comme GPUImage, qui peut exiger à peu près la même chose.) – dfd

Répondre