2014-12-07 3 views
8

Я использую этот код для создания эффекта размытия внутри мой взгляд:настроить интенсивность эффекта размытия внутри UIVisualEffectView в Swift

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

есть ли способ настроить гауссова функция, производящая размытость для того, чтобы достичь Разный уровень эффекта «вне фокуса»?

ответ

1

Поскольку нет никакого другого параметра в UIBlurEffect, я думаю, что единственный способ использовать CIFilter предустановленный CIGaussianBlur размыть фон View и использовать его ключ inputRadius для регулировки уровня.
Если вы хотите добиться того же эффекта, что и так: light/dark/ExtraLight, вы можете создать фильтр этим фильтром.

1

Радиус действия UIBlurEffect не может измениться, но существует обходное решение.

Замена alpha компонента UIVisualEffectView, придаст тонкий эффект размытия.

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

Свифта 3

let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.extraLight) 
let blurEffectView = UIVisualEffectView(effect: blurEffect) 
blurEffectView.alpha = 0.4 
blurEffectView.frame = self.bounds 
self.addSubview(blurEffectView) 
Смежные вопросы