2014-12-07 39 views
8

Sto usando questo codice per creare un effetto di sfocatura all'interno mio punto di vista:modificare l'intensità dell'effetto sfocatura all'interno UIVisualEffectView a Swift

let blur = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light)) 
blur.frame = CGRectMake(180, 10, 200, 750) 
myView.addSubview(blur) 

c'è un modo per ottimizzare la funzione gaussiana produrre la sfocatura al fine di raggiungere livello diverso di effetto "sfocato"?

risposta

1

Poiché non esiste un altro parametro in UIBlurEffect, credo che l'unico modo è quello di utilizzare il CIFilter preimpostato CIGaussianBlur per sfocare lo sfondo View e usare la sua chiave inputRadius per regolare il livello.
Se si desidera ottenere lo stesso effetto del cosiddetto light/dark/ExtraLight, è possibile comporre questo filtro con altri filtri.

1

Il raggio dell'effettivo UIBlurEffect non può essere modificato, ma è presente una soluzione alternativa.

La modifica del componente alpha dello UIVisualEffectView produce un effetto sfocato sottile.

let blur = UIVisualEffectView(effect: UIBlurEffect(style: UIBlurEffectStyle.Light)) 
blur.frame = CGRectMake(180, 10, 200, 750) 
blur.alpha = 0.4 
myView.addSubview(blur) 

Swift 3

let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.extraLight) 
let blurEffectView = UIVisualEffectView(effect: blurEffect) 
blurEffectView.alpha = 0.4 
blurEffectView.frame = self.bounds 
self.addSubview(blurEffectView)